1. 程式人生 > >npm全局安裝和局部文件安裝區別

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

升級 png tor 為我 9.png 依賴 req 就是 全局環境

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

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

  在這裏,我們可以看到所有全局安裝的工具,如webpack、babel-cli等等。

  全局安裝在命令行中的任何地方都是可以直接調用的。因為安裝之後,我們可以看到如下所示:

技術分享

  這裏是全局安裝了的babel和webpack,可以看到在根目錄下都有cmd後綴的文件,通過這些文件,我們就可以直接在命令行中使用了。 如使用 babel --version、 babel-doctor --version等等都是有效的,且不管你是在哪個目錄文件下運行的。

  

  但是局部安裝並不是這樣,往往是在一個項目中安裝之後裝入 ./node_nodules 下面, 然後在項目中,我們可以使用 require 等方式引入。這樣的局限在於,只能是在本項目中使用,而webpack和babel這樣的工具可以在各種情況、各種項目中使用。引用方式如下:

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

  引入之後我們保存到了gulp和less中,這樣,我們就可以繼續使用他們了。

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

  

  為什麽已經全局安裝了,還需要本地安裝呢?

  1、僅僅是全局安裝夠用嗎?

  通常情況下的引入模塊是分為兩種來尋找的,一種就是全局模塊,通過NODE_PATH下去尋找;還有一種就是通過./node_modules去尋找。 如果在項目中,我們希望使用require來表現這種明顯的依賴關系,那麽我們就必須使用安裝來進行require,當然也是可以將全局安裝的文件復制過來,但是這是非常麻煩的。 或者是使用..、.、/等這種相對或者絕對的方式來引入,這些無疑都是比較麻煩的,所以本地安裝不夠用。

  另外,我們也許在不同的項目中所需要的模塊的版本是不同的,或者可能對某些模塊進行重新命名,這就導致一個項目的重命名影響全局,這是不劃算的。

  2、本地安裝的重要性。

  因為我們需要的包可能有十個,他們之間相互依賴的,如果我們使用全局包,那麽每次包的升級、更新等就會影響你的多個項目,那麽依賴關系就會被破壞,所以使用本地安裝有利於不同項目之間的獨立性。

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