我正在将我的 monorepo(返回)从 yarn(带工作区)切换到 lerna/npm,因为 yarn 太慢且不稳定。然而,我有一个惊人的发现。有以下琐碎的package.json
:
{
"devDependencies": { "lerna": "^2.11.0" },
"dependencies": { "typescript": "^2.9.1" }
}
和一个空的lerna.json
(换句话说,根本没有包),然后当我运行
$ lerna bootstrap
它根本不会在任何顶级node_modules
目录中安装任何东西。如果由于某种原因我有一个node_modules
没有.bin
子目录的目录,则lerna bootstrap
无法创建或填充.bin
子目录。
lerna 不是设计为实际指定要安装的顶级包(连同它们在 中的二进制文件.bin
)?我确实注意到,如果我lerna add
在没有包的情况下尝试 lerna monorepo,它会抱怨“lerna WARN No packages found in scope where tslint can be added”。
我在文档中找不到与此相关的任何内容。使用 yarn/workspaces,我能够安装诸如 TypeScript 之类的全局(顶级)版本,以便在我的构建脚本中使用,同时保持对已安装版本的控制。