我们的团队刚刚更新为npm@5。package-lock.json和Mac是统一的(某些依赖项是可选的,所以它们不会安装在Windows上,但它们会安装在Mac上),因此不管机器如何,我们都会生成相同的node_modules结构。这样做很好,然后每个团队成员都经历了以下步骤:
rm -rf node_modulesgit pullnpm install实际上,这对于所有团队成员来说都非常完美,除了一位在npm install之后进行了修改的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文件中删除,而不是其他机器上的?另外,对这一财产所做的一些解释也不会有什么影响。:)
提前感谢!
发布于 2017-07-19 03:48:10
正如我在评论中所怀疑的那样,requires字段是从5.1.0开始添加的。您可以在这里看到相关的拉请求,https://github.com/npm/npm/pull/17508 (在这里可以看到https://github.com/npm/npm/releases/tag/v5.1.0)
引用它所说的话:
这有几个修复方法:
为了避免这种冲突,我建议您(以及我自己)确保所有的团队成员都使用相同的npm版本。
更新
在将npm升级到5.1.0版本之后,我遇到了缺少依赖项的问题(处理一个Range4应用程序)。如果有人遇到同样的问题,下面是我为解决这一问题所做的工作:
rm -rf node_modules
npm prune
npm install希望能帮上忙。
https://stackoverflow.com/questions/45117589
复制相似问题