package和package-lock區別;dependencies和devDependencies區別

package和package-lock

package.json: 主要用來定義項目中須要依賴的包node

package-lock.json: 在 npm install時候生成一份文件,用以記錄當前狀態下實際安裝的各個npm package的具體來源和版本號。npm

'^' : 放在版本號以前,表示向後兼容依賴,說白了就是在大版本號不變的狀況下,下載最新版的包json

項目中引入的包版本號以前常常會加^號,每次在執行npm install以後,下載的包都會發生變化,爲了系統的穩定性考慮,每次執行完npm install以後會對應生成package-lock文件,該文件記錄了上一次安裝的具體的版本號,至關因而提供了一個參考,在出現版本兼容性問題的時候,就能夠參考這個文件來修改版本號便可。單元測試

dependencies和devDependencies

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

若是你將包下載下來在包的根目錄裏運行spa

npm install 
//默認會安裝兩種依賴,若是你只是單純的使用這個包而不須要進行一些改動測試之類的,能夠使用

npm install --production
//只安裝dependencies而不安裝devDependencies。
複製代碼

若是你是經過如下命令進行安裝code

npm install packagename
//那麼只會安裝dependencies,若是想要安裝devDependencies,須要輸入

npm install packagename --dev  
複製代碼

devDependencies : 用於本地環境開發時候。 dependencies : 用戶發佈環境ci

devDependencies是隻會在開發環境下依賴的模塊,生產環境不會被打入包內。經過NODE_ENV=developement或NODE_ENV=production指定開發仍是生產環境。 而dependencies依賴的包不只開發環境能使用,生產環境也能使用。其實這句話是重點,按照這個觀念很容易決定安裝模塊時是使用--save仍是--save-dev。開發

相關文章
相關標籤/搜索