[英]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
是率先使用lerna
的流行工具,建议您在根软件包中添加这些软件包的所有devDependencies
。 这样做的问题是,它消除了两个软件包依赖给定dev依赖关系的不同版本的能力。
我所做的是创建一个脚本,该脚本在preinstall
将所有devDependencies
合并为dependencies
,然后撤消更改。 这行得通,但有时可能有点不方便,尤其是在将所有这些都解释为“ shrinkwrap
。
如果我可以npm i --allDevDepsFromDeps
并安装所有依赖项dev依赖npm i --allDevDepsFromDeps
,那就npm i --allDevDepsFromDeps
。
我还有其他解决方案吗?
我看不到您要达到的目标,不是devDepencies用于...开发吗?
如果您想为不同的软件包使用不同的版本,请不要将其放在根目录中,而应放在每个软件包中。
问题是,如果我安装这些软件包,则不会获得开发依赖。
您应该将那些软件包视为“生产” /“捆绑”软件包,在这种情况下,您不需要开发依赖项。
例如,当您使用@ pkg / A时,它将具有自己的devDep,但是如果您使用依赖于@ pkg / A的@ pkg / B,则@ pkg / A应该是生产/捆绑版(没有devDeps)。
也许您应该看看bundledDependencies
或peerDependencies
,这可能会对您有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.