开源改变世界

提供上游策划package-lock.json #794

推推 grbl 3年前 (2023-02-03) 269次浏览
关闭
4 个任务中的第 1 个
fooker 打开了这个问题 2022 年 12 月 28 日 · 7 条评论 · 由#799修复
关闭
4 个任务中的第 1 个

提供上游策划package-lock.json#794

fooker 打开了这个问题 2022 年 12 月 28 日 · 7 条评论 · 由#799修复

评论

提供上游策划package-lock.json #794

描述

目前,存储库不提供package-lock.json. 因此,无法重现用于构建所提供版本的确切依赖集。

请考虑提供package-lock.json用于创建发布的,通过将它们作为发布源分发的一部分或将其作为存储库的一部分进行管理(后者是首选)。

这还将带来其他好处,例如node_modules通过散列锁定文件来缓存 CI。

版本

  • CNCjs:1.9.x

操作系统

  • 不适用
  • 视窗
  • 苹果
  • Linux
提供上游策划package-lock.json #794
贡献者

承认!我会看看我是否可以从 CI 运行中挖掘出一个 package-lock.json 作为起始参考。

提供上游策划package-lock.json #794

我一直在尝试在 Raspberry PI 上安装 CNCJS,但没有成功。使用我找到的任何安装说明,都会出现大量 NMP/Node.js 版本不兼容和缺少软件包的警告。json 文件会解决我的困难吗?听起来可能。

提供上游策划package-lock.json #794
贡献者

据我所知,最佳做法是提交 yarn.lock 或 package-lock.json 并运行yarn install --frozen-lockfilenpm ci在 eh … CI 上运行。否则不可能用这些东西获得可重现的构建。至少那是我击败我的开发人员的原因。

然而,构建过程中存在一些巫术,将package.json 的位复制到另一个中src/– 不确定那是什么。

提供上游策划package-lock.json #794
贡献者
女佣 评论了 3个星期前

设法从 CI 构建中获取 package-lock.json:https ://gist.github.com/emcniece/a02e5f8b129a57109efc0e931167387d

为了让构建通过,我必须将 Appveyor/CI NodeJS 版本从 12 更新到 14。这可能会导致一些分发问题——单元测试似乎通过了,但操作系统集成将需要手动确认。

如果有人想尝试使用这个 package-lock.json 构建和运行,那将是一个很大的帮助。我会看看我是否可以标记并触发构建以进行测试。

提供上游策划package-lock.json #794
贡献者

package-lock.json 的问题之一是npm install会更新它 :)
这是分布式开发的一个自然组成部分,该文件由从事该项目的人员更新并与他们的更改一起提交。

但是,CI 通常不应自行更改或生成锁定文件。

然后我们有这个可憎的。应该生成哪个 CI(或实际打包真实版本的任何人/任何东西)。https://docs.npmjs.com/cli/v9/commands/npm-shrinkwrap

但是,如果您的顶级项目被用作其他项目的依赖项,则此文件会给下游用户带来真正的痛苦。

提供上游策划package-lock.json #794
贡献者
女佣 评论了 3个星期前

package-lock.json由于当时存在跨平台错误npm(版本 5-7),我有一个偷偷摸摸的怀疑被忽略了,例如。npm/npm#16938。如果这是真的,我们应该能够升级 Node 和 NPM 版本,提交一致的package-lock.json,并且仍然有 CI 构建/打包/发布工作应用程序。

npm-shrinkwrap.json这是作为 CI 工件发布的正在进行的 PR : https ://github.com/cncjs/cncjs/compare/master…emcniece:cncjs:fix/publish-package-lock?expand=1

如果这有效并且生成的文件在 6 个平台构建 ( https://ci.appveyor.com/project/emcniece/cncjs ) 中是相同的,那么下一步可能是手动确认这些构建中的每一个都会产生功能性应用程序在各自的平台上。

提供上游策划package-lock.json #794
合作者
奇顿 评论了 2个星期前

它将在即将发布的 1.10.x 版本中得到解决。