什么是“要求:真”包装

我们的团队刚刚更新为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)

    引用它所说的话:

    这有一些修复:

  • 它引入了一个新的package-lock.json字段,名为require,用于跟踪给定模块需要的模块。
  • .....
  • 为了避免这种冲突,我建议你(也包括我自己)确保你所有的队友都使用相同的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?