package.json相關疑惑總結

語義版本控制(node-semver)node

X.Y.Z,主要版本X,次要版本Y,補丁Zexpress

X:表明一個破壞兼容性的大變化;npm

Y:表示不會破壞任何內容的新功能;json

Z:表示不會破壞任何內容的錯誤修復;segmentfault

 

package.json中版本控制sass

"express":"^4.15.4"——表示至少應該使用版本4.15.4,但任何高於此版本的版本均可以,只要它們具備相同的主要版本(4.x.x)。PS:若是大版本號爲0,則^與~相同,由於此時處於開發階段,即便是次要版本號變更,也可能帶來程序的不兼容。ui

"express":"~4.15.4"——表示安裝時不能改變主要版本和次要版本號(4.15.x)。spa

"express":"4.15.4"——表示安裝的指定版本號(4.15.4)。版本控制

"express":"latest"——表示安裝最新版本。code

 

package-lock.json(npm 5.x.x新增,可禁用)優先級迭代

npm 5.0.x:無論package.json怎麼變,npm install 時都會根據package-lock.json文件下載;

npm 5.1.x:npm install 會無視package-lock.json文件,去下載最新的包;

npm 5.4.2後:若是改了package.json,且package.json和package-lock.json文件不一樣,那麼npm install 時npm會根據package中的版本號以及語義含義去下載最新的包,並更新至lock。若是二者是同一狀態,那麼npm install 都會根據lock下載,不會理會package實際包的版本是否有更新。

 

package-lock.json中各參數含義

"@hui-pro/empty": {
      "version": "1.1.0",
      "resolved": "http://...",
      "integrity": "sha1-D2egR6O4AeJh31PAr0KIyJJsciQ=",
      "requires": {
        "@hui-pro/locale": "^1.1.0",
        "@hui-pro/theme": "^1.1.0",
        "@hui-pro/utils": "^1.1.0"
      },
      "dependencies": {
        "@hui-pro/locale": {
          "version": "1.1.0",
          "resolved": "http://...",
          "integrity": "sha1-ZzHcgwh/q5CqslQadrXzhzQc7vQ=",
          "requires": {
            "deepmerge": "^1.5.2"
          }
        },
        "@hui-pro/theme": {
          "version": "1.1.0",
          "resolved": "http://...",
          "integrity": "sha1-+buQbn8OnWU32dIdNg6v9g6cUrU=",
          "requires": {
            "sass": "^1.19.0",
            "sass-loader": "^7.1.0"
          }
        },
        "@hui-pro/utils": {
          "version": "1.1.0",
          "resolved": "http://...",
          "integrity": "sha1-V862xMe+H5G751C3CpT3bGIFr1k=",
          "requires": {
            "h-jsencrypt": "^1.0.1",
            "moment": "^2.24.0",
            "qs": "^6.5.2",
            "resize-observer-polyfill": "^1.5.1"
          }
        }
      }
    }

version:應安裝的特定版本;

resolved:模塊的位置(URI);

integrity:驗證模塊完整性的哈希;

requires:它依賴的包列表;

dependencies:依賴包詳情列表;

 

參考資料

http://www.javashuo.com/article/p-udtzsbak-nh.html

相關文章
相關標籤/搜索