Lerna不支持顶级依赖项?

时间:2018-06-02 07:18:01

标签: npm lerna

我正在将我的monorepo(背面)从纱线(带工作空间)切换到lerna / npm,因为纱线太慢且不稳定。但是,我做了一个惊人的发现。使用以下简单的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 monorepo上尝试lerna add,它会抱怨" lerna WARN在可以添加tslint的范围内找不到包。"

我在文档中找不到与此相关的任何内容。使用纱线/工作区,我使用能够安装像TypeScript这样的全局(顶级)版本的东西,以便在我的构建脚本中使用,同时保持对所安装版本的控制。

1 个答案:

答案 0 :(得分:2)

来自Lerna docs:

  

您可以将根添加为托管位置(在lerna.json的packages数组中) - 如果这是您需要的内容。这会导致lerna将root的依赖关系链接到包的目录,运行postinstall脚本以及其他脚本等。