安装我的依赖项的开发依赖项

Install the dev dependencies of my dependencies

我有一个 monorepo,其中有一个包含许多包的 /packages 文件夹。

我可以使用 npm i ./packagesnpm i 如果它们已经使用文件指针指定。

看起来像这样:

  "dependencies": {
    "@reggi/command": "file:packages/command",
    "@reggi/dep-merge": "file:packages/dep-merge",
    "@reggi/dep-merge-cli": "file:packages/dep-merge-cli",
    "@reggi/dep-pointer": "file:packages/dep-pointer"
  }

问题是,如果我安装这些包,我不会获得开发依赖项。

我真正想要的是也安装 devDependencies 这些依赖项。

lerna 一个率先使用 monorepos 的流行工具建议您应该在根包中为这些包添加所有 devDependencies。这样做的问题是,它消除了两个包依赖于给定开发依赖项的不同版本的能力。

我所做的是创建一个脚本,将所有 devDependencies 合并到 preinstall 处的 dependencies,然后撤消更改。这可行,但有时可能有点不稳定,尤其是在向 shrinkwrap.

解释这一切时

如果我可以 npm i --allDevDepsFromDeps 就好了,它会安装我所有的依赖开发依赖。

我还缺少其他解决方案吗?

我看不出你想在那里实现什么,devDepencies 不是用于...开发吗?

如果你想为不同的包使用不同的版本,不要将它们放在根目录中,而是放在每个包中。

The issue is that if I install these packages I don't get dev dependencies.

您应该将这些包视为 'production'/'bundled' 包,在这种情况下您不需要开发依赖项。

例如,当您处理@pkg/A 时,它将有自己的 devDep,但是如果您处理依赖于@pkg/A 的@pkg/B,@ pkg/A 应该是 production/bundled 版本(没有 devDeps)。

也许你应该看看 bundledDependenciespeerDependencies,这可能对你有帮助。