gpt4 book ai didi

node.js - 如何成功锁定 monorepo 中的 Node 模块依赖项?

转载 作者:搜寻专家 更新时间:2023-10-31 23:26:20 24 4
gpt4 key购买 nike

我正在开发一个开源项目,目前正在使用 lerna帮助管理具有多个包的单个存储库。到目前为止,一切都很好,只是偶尔会出现一些问题,因为我们目前没有对任何东西进行收缩包装。我一直在尝试做一些 shrinkwrapping 的 monorepo 版本,这样我们就不会受到所有依赖项的支配(令人惊讶的是,在发布过程中,一切都经常出错!)但是遇到了一些困难,想知道我是否走在正确的轨道上。

我原本希望使用我在之前的项目中熟悉的 npm shrinkwrap。遗憾lerna doesn't appear to support shrinkwrap .

B 计划是使用 yarn,在经历了一些最初的困难之后,在切换到使用 yarn workspaces 之后似乎一切正常 - 至少我认为 yarn install --frozen-lockfile 正在做我想要的。

不幸的是,除了依赖锁之外,yarn 似乎没有帮助——一切都与 npm 和 lerna 一起工作,但 lerna 和 yarn 工作空间似乎导致解决模块的问题(甚至解决同一目录中令人困惑的东西) .

也许切换到 yarn 无论如何都是过大的,所以我开始怀疑更新版本的 npm 和 package-lock.json 是否是一个更好的主意。不幸的是,它看起来像would need some work arounds with lerna在这一点上,我开始怀疑 lerna 到底添加了多少。也许dropping lerna会有帮助吗?

那么,tl;dr,有没有人有锁定 monorepo 中模块依赖关系的好方法?

最佳答案

我建议简单地使用精确的版本控制;所以在你的 package.json 文件中有依赖项的版本号,比如 ^3.4.2,将它更改为 3.4.2。数字前的 ^(或 ~)表示版本范围。您可以通过 save exact config option 实现这一点: --save-exact 标志或通过将 save-exact=true 放在 repo 的 .npmrc 文件中。 lerna add 也支持 exact option .

希望对您有所帮助!

关于node.js - 如何成功锁定 monorepo 中的 Node 模块依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46492597/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com