【发布时间】:2018-03-11 13:57:33
【问题描述】:
我正在开发一个开源项目,该项目目前使用lerna 来帮助管理具有多个包的单个存储库。到目前为止,一切都很好,只是偶尔会出现一些问题,因为我们目前没有收缩包装任何东西。我一直在尝试做一些单仓库版本的收缩包装,这样我们就不会受到所有依赖项的摆布(令人惊讶的是,在发布过程中,每件事都经常出错!),但遇到了一些障碍,并且想知道我是否走在正确的轨道上。
我最初希望使用我在以前的项目中熟悉的 npm shrinkwrap。不幸的是lerna doesn't appear to support shrinkwrap。
B 计划是使用 yarn,在经历了一些最初的困难之后,在切换到使用 yarn 工作区后似乎一切正常——至少我认为 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 中锁定模块依赖关系的好方法?
【问题讨论】: