使用 NPM 工作区和 Lerna 在根目录安装 dev 依赖项

Posted

技术标签:

【中文标题】使用 NPM 工作区和 Lerna 在根目录安装 dev 依赖项【英文标题】:Install dev dependency at root with NPM workspaces and Lerna 【发布时间】:2021-02-17 03:04:27 【问题描述】:

所以随着 NPM 7.0.0 的发布,我试图弄清楚如何使用 NPM 而不是 Yarn Workspaces 与 Lerna。

在 Yarn 中,可以使用 yarn add packageName --dev -W 将依赖项添加到根级别的 package.json。我如何使用 NPM 做到这一点?

【问题讨论】:

【参考方案1】:

你可以这样做 -

npm install packageName --dev

【讨论】:

-g 标志进行全局安装,这不是 OP 想要的。正确的语法是 npm install packageName --sav-devnpm i packageName -D【参考方案2】:

npm 并没有真正反映 yarn 在工作空间方面的工作方式。

Yarn 期望你显式安装 deps,npm 没有。 (实际上在工作空间根目录以外的任何其他级别运行 npm install 可能并且会在使用 npms 工作空间实现时破坏事情)

所以要添加一个包(无论是否在根目录下),您应该在要添加依赖项的级别手动编辑 package.json,然后运行 ​​npm install。

例子:

    您想将concurrently 添加到您的根文件夹并使用它来运行多个脚本...同时 您不要将其添加到工作区中的工作区,因为它实际上不属于其中任何一个 在您的工作区根文件夹中手动编辑 package.json 添加 “开发依赖”: “同时”:“^5.3.0” , 在您的工作区根目录中运行 npm install concurrent 现在在 node_modules 中,可以在你的工作空间根目录中执行

【讨论】:

以上是关于使用 NPM 工作区和 Lerna 在根目录安装 dev 依赖项的主要内容,如果未能解决你的问题,请参考以下文章

将 Lerna 与 Yarn 工作区一起使用有啥优势吗?

如何在 Lerna + Yarn Workspaces repo 中安装 npm 包?

lerna入门教程

无法运行lerna的命令

Github 操作似乎无法在带有纱线工作区和 lerna 的 monorepo 中找到私有包

在 Lerna monorepo 中使用助手