2017-06-25 29 views
1

我们的项目使用npm进行包管理。从npm 4升级到npm 5后,我们决定选择新的package-lock.jsonnpm5 package-lock.json不同机器上的不同条目

提交它和其它机器上执行npm install后,我们发现在程版本差异和解决条目指定:

1)version包lock.json依赖性编码为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 
}, 

2)versionresolved属性包lock.json依赖性的例子:

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

除了具有不稳定包lock.json,我们构建服务器上安装的第一个例子时有问题。

回答

3

按照此过程产生包lock.json的稳定版本:

  1. 删除现有node_modules文件夹
  2. 删除现有package-lock.json
  3. 执行npm install
  4. 承诺并推包lock.json

对于团队的其他成员:

  1. 删除现有node_modules文件夹
  2. 包lock.json
  3. 执行npm install

继续之前删除现有node_modules是一个重要的步骤,因为包lock.json并解析node_modules夹现有的元数据。 这意味着如果你的node_modules文件夹有剩菜剩饭,它们可能会被添加到包锁的依赖关系中,即使它们不是实际的依赖关系(不再)。

+0

这对我有用(确保在创建package-lock.json时执行'npm install'之前删除node_modules文件夹和现有的package-lock.json,如果存在的话)。但对于“对于其他团队”步骤,我需要添加步骤1a:运行'npm install'(不包含package-lock.json和node_modules文件夹),1b:再次删除node_modules文件夹并新创建包锁以.json。继续执行第2步和第3步到'npm install',然后按预期工作。 – tbmpls

相关问题