npm全局安裝和局部文件安裝區別

全局安裝每每是安裝一個工具,他不是安裝在一個文件夾下,而是安裝在某個全局環境下,如目前個人安裝路徑是:node

C:\Users\cvter\AppData\Roaming\npm

   在這裏,咱們能夠看到全部全局安裝的工具,如webpack、babel-cli等等。 webpack

  全局安裝在命令行中的任何地方都是能夠直接調用的。由於安裝以後,咱們能夠看到以下所示:web

  這裏是全局安裝了的babel和webpack,能夠看到在根目錄下都有cmd後綴的文件,經過這些文件,咱們就能夠直接在命令行中使用了。 如使用 babel --version、   babel-doctor --version等等都是有效的,且無論你是在哪一個目錄文件下運行的。 npm

 

 

  

  可是局部安裝並非這樣,每每是在一個項目中安裝以後裝入 ./node_nodules 下面, 而後在項目中,咱們可使用 require 等方式引入。這樣的侷限在於,只能是在本項目中使用,而webpack和babel這樣的工具能夠在各類狀況、各類項目中使用。引用方式以下:gulp

var gulp = require('gulp');
var less = require('gulp-less');

  引入以後咱們保存到了gulp和less中,這樣,咱們就能夠繼續使用他們了。babel

 

 

  本地安裝通常是 npm install webpack或者npm install webpack --save 或者 npm install webpack --save-dev等等,他們都是全局安裝,區別僅在因而否將依賴存入dependencies以及devdependencies文件中去。less

  

  爲何已經全局安裝了,還須要本地安裝呢? 

  一、僅僅是全局安裝夠用嗎?工具

  一般狀況下的引入模塊是分爲兩種來尋找的,一種就是全局模塊,經過NODE_PATH下去尋找;還有一種就是經過./node_modules去尋找。 若是在項目中,咱們但願使用require來表現這種明顯的依賴關係,那麼咱們就必須使用安裝來進行require,固然也是能夠將全局安裝的文件複製過來,可是這是很是麻煩的。 或者是使用..、.、/等這種相對或者絕對的方式來引入,這些無疑都是比較麻煩的,因此本地安裝不夠用。ui

  另外,咱們也許在不一樣的項目中所須要的模塊的版本是不一樣的,或者可能對某些模塊進行從新命名,這就致使一個項目的重命名影響全局,這是不划算的。命令行

  二、本地安裝的重要性。

  由於咱們須要的包可能有十個,他們之間相互依賴的,若是咱們使用全局包,那麼每次包的升級、更新等就會影響你的多個項目,那麼依賴關係就會被破壞,因此使用本地安裝有利於不一樣項目之間的獨立性。

相關文章
相關標籤/搜索