【问题标题】:What's the issue in publishing package-lock.json发布 package-lock.json 有什么问题
【发布时间】:2018-07-27 00:45:19
【问题描述】:

我从

博客
https://medium.com/@Quigley_Ja/everything-you-wanted-to-know-about-package-lock-json-b81911aa8ab8

和文档
https://docs.npmjs.com/files/package-lock.json

阅读了 package-lock.json 的用法

但是,不清楚为什么不允许发布package-lock.json 或者可能会出现什么问题。愿有人照亮。

谢谢

【问题讨论】:

  • package-lock.json 更像是一个临时文件,可能会发生变化,所以你为什么要发布它
  • 我知道它代表了我们项目的确切状态,为什么叫它临时文件?
  • “像一个临时”文件意味着它将特定于您使用节点应用程序运行的时间和内容。如果您将应用发布到 npm,则实际上不需要。
  • 好点 Arpit,但是除了 package.json 之外,当它提供更准确的项目状态时,为什么我们会认为它不是必需的
  • @ArpitSolanki 这根本不是临时的,您甚至应该将其签入源代码控制。您是否正在考虑在数据库等中使用“锁定文件”?两者不要混淆,package-lock.json不是锁文件。

标签: node.js npm package.json semantic-versioning


【解决方案1】:

它们不应该被发布的原因是因为它不会做任何事情。 npm 将忽略任何不在项目根目录中的package-lock.json,因为锁定项目本身以外的任何地方的依赖项是没有意义的。

没有任何出错的危险,发布它只是没有意义。

来源:https://docs.npmjs.com/cli/v7/configuring-npm/package-lock-json

不同的是package-lock.json是不能发布的,如果在根项目以外的地方找到会被忽略。

【讨论】:

    【解决方案2】:

    Should package-lock.json also be published?Do I commit the package-lock.json file created by npm 5? 可能重复

    相信你指的是

    关于 package-lock.json 的一个关键细节是它不能被发布

    https://docs.npmjs.com/files/package-lock.json.

    package-lock.json 如果在 NPM 上发布,确实会被忽略,但 package-lock.json 旨在提交源代码控制。
    它确保您在本地计算机上使用的dependencies 与生产环境中的版本相同。

    您不希望在package-lock.json 中有devDependencies,尽管它们可能会影响生产环境。

    【讨论】:

    • 您的答案的要点是,锁定文件中存在不应发布的 dev 依赖项,但包文件中也存在 dev 依赖项。
    • 我已经阅读了关于 SO 的两个答案,提出这个问题是因为我们需要直接和帮助的问题,这些问题不回答要求的事情
    猜你喜欢
    • 2018-03-21
    • 1970-01-01
    • 2017-11-16
    • 2018-09-04
    • 2018-07-05
    • 2017-10-30
    • 2017-11-02
    相关资源
    最近更新 更多