什么是“要求:真”包装
我们的团队刚刚更新为npm @ 5。 package-lock.json
在Windows和Mac之间统一(某些依赖项是可选的,因此它们不会在Windows上安装,但它们在Mac上执行),因此无论机器如何,我们都会生成相同的node_modules结构。 这很顺利,然后每个团队成员都经历了以下步骤:
rm -rf node_modules
git pull
npm install
实际上这对所有团队成员来说都是完美的,除了一个,在npm install
后修改了package-lock.json
。 修改后的一行是删除"requires": true
。
所以我看到:
{
...
"version": "0.0.1",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
...
}
但他看到:
{
...
"version": "0.0.1",
"lockfileVersion": 1,
"dependencies": {
...
}
有人知道为什么requires: true
可能会从某些机器上的package-lock.json
文件中删除,而不是其他人? 另外,对这个属性做些什么不会有什么伤害。 :)
提前致谢!
正如我在我的评论中所怀疑的那样,自5.1.0
开始, requires
字段已被添加。 你可以在这里看到相关的请求https://github.com/npm/npm/pull/17508(changelog可见https://github.com/npm/npm/releases/tag/v5.1.0)
引用它所说的话:
这有一些修复:
为了避免这种冲突,我建议你(也包括我自己)确保你所有的队友都使用相同的npm
版本。
UPDATE
将npm
升级到版本5.1.0
,我遇到了缺少依赖关系的问题(使用Angular 4应用程序)。 如果有人遇到同样的问题,这是我做了什么来解决它:
rm -rf node_modules
npm prune
npm install
希望能帮助到你。
链接地址: http://www.djcxy.com/p/96853.html上一篇: What does "requires: true" do in package
下一篇: Why Mockito can't mock a generic parameter type with number type in Kotlin?