为什么 package-lock.json 会更新为通用版本?

Why would package-lock.json ever be updated with generic versions?

为什么我的包 -lock.json 从特定版本更新到 GENERIC 语义版本?

在 运行 npm 安装之后...

差异如下:

这是一个实际的代码片段:

之前

"@babel/highlight": {
  "version": "7.0.0-beta.54",
  "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.54.tgz",
  "integrity": "sha1-FV1Qc1gym45waJcAF8P9dKmwhYQ=",
  "requires": {
    "chalk": "2.4.1",
    "esutils": "2.0.2",
    "js-tokens": "3.0.2"
  },
  "dependencies": {
    "ansi-styles": {
      "version": "3.2.1",
      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
      "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
      "requires": {
        "color-convert": "1.9.0"
      }
    },

之后

"@babel/highlight": {
  "version": "7.0.0-beta.54",
  "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.54.tgz",
  "integrity": "sha1-FV1Qc1gym45waJcAF8P9dKmwhYQ=",
  "requires": {
    "chalk": "^2.0.0",
    "esutils": "^2.0.2",
    "js-tokens": "^3.0.0"
  },
  "dependencies": {
    "ansi-styles": {
      "version": "3.2.1",
      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
      "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
      "requires": {
        "color-convert": "^1.9.0"
      }
    },

这个文件的全部意义不就是描述您当前依赖关系树的精确快照吗?

我的 npm 版本是 6.4.1

在此线程上发布了非常详细的解释(问了很多相同的问题)。谢谢你,里斯·阿金斯!

https://github.com/npm/npm/issues/20434#issuecomment-402988364