Tag: lerna

如何成功lockingmonorepo中的节点模块依赖关系?

我正在开发一个开源项目,目前正在使用lerna来帮助pipe理包含多个包的单个存储库。 到目前为止,这么好,除了时不时的事情打破,因为我们目前没有收缩任何东西。 我一直在试图做一些monorepo版本的shrinkwrapping,这样我们就不会受到所有依赖关系的支配(在发布的过程中,每次出错的频率都是惊人的!),但却遇到了一些困难,想知道我是否在正确的轨道上。 我最初希望能够使用我从以前的项目中熟悉的npm shrinkwrap。 不幸的是, lerna似乎不支持拆封 。 Bscheme是利用纱线,经过一些初步的困难后,切换到使用纱线工作区后似乎会好yarn install –frozen-lockfile至less我认为yarn install –frozen-lockfile正在做我想要的。 不幸的是,除了依赖locking之外,纱线似乎不能帮助所有的npm和lena工作,但是lena和纱线工作空间似乎导致了解决模块的问题(甚至是在同样的目录中解决这个问题)。 也许切换到纱线无论如何是矫枉过正,所以我开始怀疑是否更新版本的npm和package-lock.json是一个更好的主意。 不幸的是,这似乎需要一些与lerna的工作,在这一点上,我开始怀疑有多lesslerna是真的添加。 也许放弃lerna会有所帮助? 所以, tl; dr ,有没有人有一个好方法locking模块依赖关系monorepo?

是否有可能通过创build新的(未发布的)“子”包来打破(发布)包的依赖列表?

我维护一个在npmregistry上发布的JavaScript库,它有很多的依赖关系。 跟踪代码的哪一部分取决于哪些外部包是很难的。 不幸的是lerna , yarn的工作区, npm link或者npm的本地path依赖声明都没有帮助。 (我解释了为什么之后)。 我希望能够通过提取一些依赖到新的“子包”来打破package.json中声明的dependencies列表。 所以,而不是有以下依赖列表 // ~/code/example-lib/package.json { "name": "example-lib", "dependencies": { "lodash": "*", "request": "*", "chalk": "*", "bluebird": "*", "mz": "*", "moment": "*", "socket.io": "*", "socket.io-client": "*", "react": "*", "react-dom": "*" } } 我想提取一些依赖到一个新的本地包example-lib-subpackage 。 与本地我的意思是, example-lib-subpackage只意味着由example-lib消耗。 example-lib-subpackage的依赖列表将是; // ~/code/example-lib/packages/example-lib-subpackage/package.json { "name": "example-lib-subpackage", "dependencies": { "lodash": "*", "request": "*", […]