一文了解npm install -g和npm install --save-dev的關係

本文分享自華爲雲社區《npm install -g 和 npm install --save-dev 的關係》,作者: SHQ5785。

一、npm install 本地安裝

  1. 將安裝包放在 ./node_modules 下(運行 npm 命令時所在的目錄),如果沒有 node_modules 目錄,會在當前執行 npm 命令的目錄下生成 node_modules 目錄。
  2. 可以通過 require() 來引入本地安裝包。

二、npm install -g 全局安裝

  1. 將安裝包放在 /usr/local 下或者 node 的安裝目錄。
  2. 可以直接在命令行裏使用。

三、npm install --save

  1. 會把build包安裝到node_modules目錄中;
  2. 會在package.json的dependencies屬性下添加build;
  3. 之後運行npm install命令時,會自動安裝build到node_modules目錄中;
  4. 之後運行npm install --production或者註明NODE_ENV變量值爲production時,會自動安裝msbuild到node_modules目錄中;

四、npm install --save-dev

  1. 會把msbuild包安裝到node_modules目錄中;
  2. 會在package.json的devDependencies屬性下添加msbuild;
  3. 之後運行npm install命令時,會自動安裝msbuild到node_modules目錄中;
  4. 之後運行npm install --production或者註明NODE_ENV變量值爲production時,不會自動安裝msbuild到node_modules目錄中;

五、package.json 中 dependencies 與 devDependencies 的區別

  • dependencies:

應用能夠正常運行所依賴的包。這種 dependencies 是最常見的,用戶在使用 npm install 安裝包時會自動安裝這些依賴。

  • devDependencies:

開發應用時所依賴的工具包。通常是一些開發測試打包工具,例如 webpack、ESLint、Mocha。應用正常運行並不依賴於這些包,用戶在使用 npm install 安裝包時也不會安裝這些依賴。

  • peerDependencies:

應用運行依賴的宿主包。最典型的就是插件,例如各種 jQuery 插件,這些插件本身不包含 jQeury,需要外部提供。用戶使用 npm 1 或 2 時會自動安裝這種依賴,npm 3 不會自動安裝,會提示用戶安裝。

  • bundledDependencies:

發佈包時需要打包的依賴,似乎很少見。

  • optionalDependencies:

可選的依賴包。此種依賴不是程序運行所必須的,但是安裝後可能會有新功能,例如一個圖片解碼庫,安裝了 optionalDependencies 後會支持更多的格式。

那麼 package.json 文件裏面的 devDependencies 和 dependencies 對象有什麼區別呢?

devDependencies 裏面的插件(比如各種loader,babel全家桶及各種webpack插件等)只用於開發環境,不用於生產環境,因此不需要打包;而 dependencies 是需要發佈到生產環境的,是要打包的。

 

點擊關注,第一時間瞭解華爲雲新鮮技術~

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章