"requires: true" 在 package-lock.json 中做什么
What does "requires: true" do in package-lock.json
我们的团队刚刚更新到 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 visible here https://github.com/npm/npm/releases/tag/v5.1.0)
引用它所说的话:
This has a handful of fixes:
- It introduces a new package-lock.json field, called requires, which
tracks which modules a given module requires.
- .....
为了避免此类冲突,我建议您(以及我自己)确保您所有的队友都使用相同的 npm
版本。
更新
将 npm
升级到版本 5.1.0
后,我遇到了缺少依赖项的问题(在 Angular 4 应用程序上工作)。如果有人遇到同样的问题,以下是我为解决问题所做的工作:
rm -rf node_modules
npm prune
npm install
希望对您有所帮助。
我们的团队刚刚更新到 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 visible here https://github.com/npm/npm/releases/tag/v5.1.0)
引用它所说的话:
This has a handful of fixes:
- It introduces a new package-lock.json field, called requires, which tracks which modules a given module requires.
- .....
为了避免此类冲突,我建议您(以及我自己)确保您所有的队友都使用相同的 npm
版本。
更新
将 npm
升级到版本 5.1.0
后,我遇到了缺少依赖项的问题(在 Angular 4 应用程序上工作)。如果有人遇到同样的问题,以下是我为解决问题所做的工作:
rm -rf node_modules
npm prune
npm install
希望对您有所帮助。