发布 package-lock.json 有啥问题
Posted
技术标签:
【中文标题】发布 package-lock.json 有啥问题【英文标题】: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
不是锁文件。
【参考方案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 的两个答案,提出这个问题是因为我们需要直接和帮助的问题,这些问题不回答要求的事情以上是关于发布 package-lock.json 有啥问题的主要内容,如果未能解决你的问题,请参考以下文章
npm-shrinkwrap.json 和 package-lock.json 有啥区别?
NPM5,package-lock.json 和 package.json 有啥区别?
在 package-lock.json 中解析 URL 有啥意义?
package-lock.json 和 package.json 有啥区别,啥时候生成 package.json?