2

我注意到每当我这样做时npm install --save,我的package-lock.json文件都会被修改,并且^从版本中删除了符号。

例如,

"@babel/core": {
      "version": "7.7.2",
      "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.2.tgz",
      "integrity": "sha512-eeD7VEZKfhK1KUXGiyPFettgF3m513f8FoBSWiQ1xTvl1RAopLs42Wp9+Ze911I6H0N9lNqJMDgoZT7gHsipeQ==",
      "dev": true,
      "requires": {
        "@babel/code-frame": "^7.5.5",
        "@babel/generator": "^7.7.2",
        "@babel/helpers": "^7.7.0",
        "@babel/parser": "^7.7.2",
        "@babel/template": "^7.7.0",
        "@babel/traverse": "^7.7.2",
        "@babel/types": "^7.7.2",
        "convert-source-map": "^1.7.0",
        "debug": "^4.1.0",
        "json5": "^2.1.0",
        "lodash": "^4.17.13",
        "resolve": "^1.3.2",
        "semver": "^5.4.1",
        "source-map": "^0.5.0"
      }

变成

"@babel/core": {
  "version": "7.7.2",
  "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.2.tgz",
  "integrity": "sha512-eeD7VEZKfhK1KUXGiyPFettgF3m513f8FoBSWiQ1xTvl1RAopLs42Wp9+Ze911I6H0N9lNqJMDgoZT7gHsipeQ==",
  "dev": true,
  "requires": {
    "@babel/code-frame": "7.5.5",
    "@babel/generator": "7.7.2",
    "@babel/helpers": "7.7.0",
    "@babel/parser": "7.7.3",
    "@babel/template": "7.7.0",
    "@babel/traverse": "7.7.2",
    "@babel/types": "7.7.2",
    "convert-source-map": "1.7.0",
    "debug": "4.1.1",
    "json5": "2.1.1",
    "lodash": "4.17.15",
    "resolve": "1.12.0",
    "semver": "5.7.1",
    "source-map": "0.5.7"
  }

我无法弄清楚为什么会这样。了解通过提供--no-package-lock标志将防止修改现有package-lock.json文件。但是有没有办法在保持最新的^同时保持package-lock.json最新状态?

更新:我安装的 npm 版本是 5.6.0。

4

1 回答 1

1

文件背后的整个想法package-lock是,无论您在什么环境安装它,您都将获得一致的安装。这意味着安装的版本必须固定为特定版本

于 2019-11-29T08:19:30.953 回答