安装我的依赖项的开发依赖项
Install the dev dependencies of my dependencies
我有一个 monorepo,其中有一个包含许多包的 /packages
文件夹。
我可以使用 npm i ./packages
或 npm 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)。
也许你应该看看 bundledDependencies
或 peerDependencies
,这可能对你有帮助。
我有一个 monorepo,其中有一个包含许多包的 /packages
文件夹。
我可以使用 npm i ./packages
或 npm 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)。
也许你应该看看 bundledDependencies
或 peerDependencies
,这可能对你有帮助。