"需要什么:true"在package-lock.json中执行

时间:2017-07-15 11:22:02

标签: node.js npm npm-install package-lock.json

我们的团队刚刚更新到npm @ 5。 package-lock.json在Windows和Mac之间统一(某些依赖项是可选的,因此它们不会安装在Windows上,但它们在Mac上安装)因此无论机器如何,我们都会生成相同的node_modules结构。那很顺利,然后每个团队成员都经历了以下步骤:

  1. rm -rf node_modules
  2. git pull
  3. npm install
  4. 除了在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文件中删除而不是其他计算机上的文件?此外,稍微解释一下这个属性不会造成什么伤害。 :)

    提前致谢!

1 个答案:

答案 0 :(得分:6)

正如我在评论中所怀疑的那样,自requires以来添加了5.1.0字段。您可以在此处查看相关的提款请求https://github.com/npm/npm/pull/17508(此处显示更改日志https://github.com/npm/npm/releases/tag/v5.1.0

引用它的内容:

  

这有一些修复:

     
      
  1. 它引入了一个名为requires的新的package-lock.json字段   跟踪给定模块所需的模块。
  2.   
  3. .....
  4.   

为了避免这种冲突,我建议您(以及我自己)确保您的所有队友都使用相同的npm版本。

<强>更新

npm升级到版本5.1.0后,我遇到了缺少依赖项的问题(处理Angular 4应用程序)。如果有人遇到同样的问题,我会采取以下措施解决问题:

rm -rf node_modules
npm prune
npm install

希望它有所帮助。