package-lock.json中的“require:true”是做什么的
我们的团队刚刚更新到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
开始, 5.1.0
域已经被添加了。 你可以在这里看到相关的pull request https://github.com/npm/npm/pull/17508(changelog在这里可见https://github.com/npm/npm/releases/tag/v5.1.0 )
引用它所说的话:
这有一些修复:
- 它引入了一个新的package-lock.json字段,名为require,用于跟踪给定模块需要的模块。
- …..
为了避免这种冲突,我build议你(也是我自己)确保你所有的队友都使用相同的npm
版本。
UPDATE
将npm
升级到版本5.1.0
,我遇到了缺less依赖关系的问题(在Angular 4应用程序上工作)。 如果有人遇到同样的问题,那么我做了什么来解决它:
rm -rf node_modules npm prune npm install
希望能帮助到你。