注意:
npm v5
以後版本安裝包可以不加
--save
,它會自動在
package.json
中的
dependencies
儲存依賴資訊
package.json
-
這個express": "^4.16.2"
^
符号就是代表版本
對于開發者來說最有價值就是
,可以用來幫我們儲存第三方包的依賴資訊。如果你的dependencies
删除了也不用擔心,我們隻需要node-modules
就會把npm install
中 所有package.json
依賴項都下載下傳回來。dependencies
- 是以建議每個項目的根目錄都有
檔案package.json
- 建議執行
的時候都加上npm install 包名
這個選項, 目的就是為了儲存依賴項資訊--save
{
...
"dependencies": {
"art-template": "^4.12.2",
"express": "^4.16.2",
}
}
package-lock.json
-
中記錄你所使用第三方包的package-lock.json
, 依賴包中也可能有依賴包 。 比如express 包 還依賴别的第三方包都會在這裡記錄下來。你可以打開express的package.json 就可以看到它的依賴!所有依賴選項
-
還詳細的記錄了所有依賴的版本和下載下傳位址。 可以高效的完成包安裝package-lock.json
-
中主要目的就是為了鎖定目前項目使用包的版本和它依賴的版本, 不至于項目每次安裝都是最新的依賴包,導緻版本不符項目出錯package-lock.json
npm v5
以前是不會有
package-lock.json
這個檔案的, 之後才加入。 當你安裝包時,
npm
自動會生成或者更新
package-lock.json
檔案
{
...
"art-template": {
"version": "4.12.2",
"resolved": "http://registry.npm.taobao.org/art-template/download/art-template-4.12.2.tgz",
"integrity": "sha1-pB64LZZ5u9HHPx+Dj/RujrBhJWU=",
"requires": {
"acorn": "5.2.1",
"detect-node": "2.0.3",
"escodegen": "1.9.0",
"estraverse": "4.2.0",
"html-minifier": "3.5.6",
"is-keyword-js": "1.0.3",
"js-tokens": "3.0.2",
"merge-source-map": "1.0.4",
"source-map": "0.5.7"
}
}
}