【问题标题】:npm and yarn: does package.json have the priority over lockfile?npm 和 yarn:package.json 是否优先于 lockfile?
【发布时间】:2018-11-20 23:03:41
【问题描述】:

让我们考虑 npm 5.3.0+

假设我刚刚在空目录中创建了package.json 并运行npm i。然后我在package.json 中编辑了包版本。此时package.jsonpackage-lock.json不一致。

问题:如果我再次运行npm i 会发生什么?哪个文件将是真相的来源?在 npm 文档中,我发现只有一个模糊的陈述“每当你运行 npm install 时,npm 都会生成或更新你的包锁”。

关于纱线的同样问题。

【问题讨论】:

标签: javascript node.js npm yarnpkg


【解决方案1】:

我在使用yarn 时遇到了类似的问题。这里有一些想法可能对你有帮助,

如果存在 yarn.lock 并且足以满足 package.json 中列出的所有依赖项,则安装 yarn.lock 中记录的确切版本,并且 yarn.lock 将保持不变。 Yarn 不会检查更新的版本。

如果没有 yarn.lock,或者不足以满足 package.json 中列出的所有依赖项(例如,如果您手动将依赖项添加到 package.json),Yarn 会查找满足package.json 中的约束。结果写入yarn.lock。

https://classic.yarnpkg.com/en/docs/cli/install/

哪个文件是真相的来源?

取决于 yarn.lock 中的 3rd 方包的版本是否满足包 package.json 中的版本限制。如果是,那么 yarn.lock 文件就是“真相之源”;否则,它应该是 package.json。

【讨论】:

    猜你喜欢
    • 2014-10-23
    • 2014-02-23
    • 1970-01-01
    • 2017-05-21
    • 1970-01-01
    • 1970-01-01
    • 2020-11-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多