我们的团队刚刚更新到npm @ 5。 package-lock.json
在Windows和Mac之间统一(某些依赖项是可选的,因此它们不会安装在Windows上,但它们在Mac上安装)因此无论机器如何,我们都会生成相同的node_modules结构。那很顺利,然后每个团队成员都经历了以下步骤:
rm -rf node_modules
git pull
npm install
除了在package-lock.json
之后修改npm install
的团队成员之外,所有团队成员实际上都是完美的。修改后的一行是删除了"requires": true
。
所以我看到了:
{
...
"version": "0.0.1",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
...
}
但他看到了:
{
...
"version": "0.0.1",
"lockfileVersion": 1,
"dependencies": {
...
}
是否有人知道为什么requires: true
可能会从某些计算机上的package-lock.json
文件中删除而不是其他计算机上的文件?此外,稍微解释一下这个属性不会造成什么伤害。 :)
提前致谢!
答案 0 :(得分:6)
正如我在评论中所怀疑的那样,自requires
以来添加了5.1.0
字段。您可以在此处查看相关的提款请求https://github.com/npm/npm/pull/17508(此处显示更改日志https://github.com/npm/npm/releases/tag/v5.1.0)
引用它的内容:
这有一些修复:
- 它引入了一个名为requires的新的package-lock.json字段 跟踪给定模块所需的模块。
- .....
醇>
为了避免这种冲突,我建议您(以及我自己)确保您的所有队友都使用相同的npm
版本。
<强>更新强>
将npm
升级到版本5.1.0
后,我遇到了缺少依赖项的问题(处理Angular 4应用程序)。如果有人遇到同样的问题,我会采取以下措施解决问题:
rm -rf node_modules
npm prune
npm install
希望它有所帮助。