npm5 package-lock.json不同机器上的不同条目

Mob*_*ent 3 npm node-modules package.json package-lock.json

我们的项目使用npm进行包管理.从npm 4升级到npm 5后,我们决定选择加入新版本package-lock.json.

提交并npm install在其他计算机上执行后,我们发现了指定版本和已解决条目的方式的差异:

1)package-lock.json依赖项的示例,version编码为URL:

"jspm": {
  "version": "https://registry.npmjs.org/jspm/-/jspm-0.16.52.tgz",
  "integrity": "sha1-axhH4I8TGsm9JnzFiXSXmudnXS4=",
  "dev": true
},
 "systemjs": {
  "version": "https://registry.npmjs.org/systemjs/-/systemjs-0.19.46.tgz",
  "integrity": "sha1-wEV0szNfBSoOPHoA7kGIxuTB444=",
  "dev": true
},
Run Code Online (Sandbox Code Playgroud)

2)package-lock.json依赖项的例子versionresolved属性:

"jspm": {
  "version": "0.16.53",
  "resolved": "https://registry.npmjs.org/jspm/-/jspm-0.16.53.tgz",
  "integrity": "sha1-VvNR9JWUyJM+XgG2UUWsrr/PtZ4=",
  "dev": true,
  "dependencies": {
    ...
  }
},
"systemjs": {
  "version": "0.19.46",
  "resolved": "https://registry.npmjs.org/systemjs/-/systemjs-0.19.46.tgz",
  "integrity": "sha1-wEV0szNfBSoOPHoA7kGIxuTB444=",
  "dev": true
},
...
Run Code Online (Sandbox Code Playgroud)

除了不稳定的package-lock.json之外,我们的构建服务器在安装第一个示例时遇到了问题.

Mob*_*ent 6

按照此过程生成package-lock.json的稳定版本:

  1. 删除现有node_modules文件夹
  2. 删除现有的package-lock.json
  3. 演出 npm install
  4. 提交并推送package-lock.json

对于团队的其他成员:

  1. 删除现有node_modules文件夹
  2. 新的package-lock.json
  3. 演出 npm install

继续之前删除现有node_modules是因为包lock.json并解析的必要步骤现有的元数据node_modules文件夹中.这意味着如果你的node_modules文件夹有剩余部分,它们可能会被添加到package-lock的依赖项中,即使它们不再是实际的依赖项(不再是).