当前位置 : 主页 > 网页制作 > Nodejs >

node.js – 如何在monorepo中成功锁定节点模块依赖?

来源:互联网 收集:自由互联 发布时间:2021-06-16
我正在开发一个开源项目,该项目目前正在使用 lerna来帮助管理具有多个软件包的单个存储库.到目前为止,这么好,除了因为我们目前没有收缩任何东西而偶尔会出现问题.我一直在尝试做
我正在开发一个开源项目,该项目目前正在使用 lerna来帮助管理具有多个软件包的单个存储库.到目前为止,这么好,除了因为我们目前没有收缩任何东西而偶尔会出现问题.我一直在尝试做一些monorepo版本的shrinkwrapping,这样我们就不会受到所有依赖项的支配(令人惊讶的是,在发布的过程中,一切都出错了!)但是已经打了一个墙,我想知道我是否走在正确的轨道上.

我本来希望使用我以前的项目熟悉的npm shrinkwrap.不幸的是lerna doesn’t appear to support shrinkwrap.

B计划是利用纱线,经过一些初步的困难后,在转换到使用纱线工作区后似乎没问题 – 至少我认为纱线安装 – 冷冻锁文件正在做我想要的.

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

也许转换到纱线无论如何都是矫枉过正,所以我开始想知道更新版本的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.

希望有所帮助!

网友评论