首頁 > 軟體

npm install 時--save-dev和--save的區別

2020-06-16 16:53:23

package.json中兩個欄位含義簡介

一直在使用npm包管理器,對於npm install module --save-dev 和 npm install module --save這兩個的區別做了一些淺析的理解:

dependencies

dependencies屬性被宣告在一個簡單的物件中,用來控制包名在一定的版本範圍內,版本範圍是一個字串,可以被一個或多個空格分割。dependencied也可以被指定為一個壓縮包地址或者一個 git URL 地址。

不要把測試工具或transpilers跳脫器(babel, webpack, gulp, postcss...)寫到dependencies中。 (這些應該寫到devDependencies)設定中,因為在別的專案中npm install 該包的時候會去下載dependencies中的依賴。

devDependencies

如果你的包被別人依賴或者安裝時,在對方主專案中進行npm install便不會安裝依賴包中的devDependencies中的npm包,所以如果你的專案中依賴的一些包不是在使用該專案時必須進行安裝的,那就將包放在devDependencies中。

****整體功能比較****

npm install module:

  • 會把module包安裝到node_modules目錄中
  • 不會修改package.json
  • 之後執行npm install 命令時,不會自動安裝module包

npm install module --save

  • 會把module包安裝到node_modules目錄彙總
  • 會修改package.json,將模組名和版本號新增到dependencies部分
  • 之後執行npm install 命令時,會自動安裝module包
  • 之後執行npm install --production或者註明NODE_ENV變數值為production時,會自動安裝 module到node_modules目錄中,即是線上上環境執行時會將包安裝

npm install module --save-dev

  • 會把module包安裝到node_modules目錄彙總
  • 會修改package.json,將模組名和版本號新增到devDependencies部分
  • 之後執行npm install 命令時,會自動安裝module包
  • 之後執行npm install --production或者註明NODE_ENV變數值為production時,不會自動安裝msbuild到node_modules目錄中,即是線上上環境並不會進行安裝。

首先,--save和--save-dev可以省掉我們手動修改package.json檔案的步驟。我們使用的一些打包工具、非專案必須依賴的都放在devDependencies中。

本文永久更新連結地址https://www.linuxidc.com/Linux/2018-03/151499.htm


IT145.com E-mail:sddin#qq.com