1. 程式人生 > >package.json依賴管理dependencies中 和 的區別

package.json依賴管理dependencies中 和 的區別

一個node package有兩種依賴,一種是dependencies一種是devDependencies,其中前者依賴的項該是正常執行該包時所需要的依賴項,而後者則是開發的時候需要的依賴項,像一些進行單元測試之類的包。

如果你將包下載下來在包的根目錄裡執行
npm install

預設會安裝兩種依賴,如果你只是單純的使用這個包而不需要進行一些改動測試之類的,可以使用
npm install --production

只安裝dependencies而不安裝devDependencies。
如果你是通過以下命令進行安裝
npm install packagename

那麼只會安裝dependencies,如果想要安裝devDependencies,需要輸入
npm install packagename --dev
dependencies就是你程式跑起來需要的模組,沒有這個模組你程式就會報錯。
devDependencies見命知意了,開發程式的時候需要的模組了。
舉個例子,你用angularjs框架開發一個程式,開發階段需要用到gulp來構建你的開發和本地執行環境。所以angularjs一定要放到dependencies裡,因為以後程式到生產環境也要用。gulp則是你用來壓縮程式碼,打包等需要的工具,程式實際執行的時候並不需要,所以放到dev裡就ok了。
再深入一些,你寫程式要用ES6標準,瀏覽器並不完全支援,所以你要用到babel來轉換程式碼。程式裡有訊息提示,你想用toaster。同樣一個開發用,一個執行用。所以babel放dev,toaster放dependencies。

希望你理解了!