天天看點

Node.js學習 (十三)package.json、package-lock.json 最通俗的了解

注意:

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"
      }
    }
}
           

繼續閱讀