npm - Lerna 不支持顶层依赖?

标签 npm lerna

我正在将我的 monorepo(返回)从yarn(带工作区)切换到 lerna/npm,因为yarn 太慢且不稳定。然而,我有了一个惊人的发现。使用以下简单的 package.json:

{
  "devDependencies": { "lerna": "^2.11.0" },
  "dependencies":    { "typescript": "^2.9.1" }
}

和一个空的lerna.json(换句话说,根本没有包),然后当我运行时

$ lerna bootstrap

它不会在任何顶级 node_modules 目录中安装任何内容。如果由于某种原因我有一个没有 .bin 子目录的 node_modules 目录,那么 lerna bootstrap 无法创建或填充 。 bin 子目录。

lerna 的设计不是为了实际指定要安装的顶级软件包(以及 .bin 中的二进制文件)吗?我确实注意到,如果我在没有软件包的 lerna monorepo 上尝试 lerna add ,它会提示“lerna WARN 在可以添加 tslint 的范围内找不到软件包。”

我在文档中找不到与此相关的任何内容。通过yarn/workspaces,我能够安装诸如TypeScript之类的全局(顶级)版本,以便在我的构建脚本中使用,同时保持对已安装版本的控制。

最佳答案

来自 Lerna 文档:

You can add the root as a managed location (in the packages array of lerna.json) - if that's something you need. This would cause lerna to link root's dependencies to your packages' directories, run postinstall script along with the others, etc.

关于npm - Lerna 不支持顶层依赖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50654496/

相关文章:

json - Package.json - 无法安装模块

Lerna 指定运行顺序

windows - npm 在 Windows 上安装 windows-build-tools

angular - 理解 Gradle "task"语法

node.js - 如何将 lerna 与 dotenv 包一起使用?

javascript - 为什么 webpack 包含依赖的 node_modules?

javascript - 如何屏蔽 Lerna 包的内部结构,使其他包无法导入它们?

npm - 单体仓库和多个 node_modules 文件夹

node.js - 使 npm 包子模块可用

Docker npm install --production 不工作