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


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中。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM