[英]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.