簡體   English   中英

有條件地在package.json中安裝不同版本的npm包

[英]Install different version of npm packages in package.json conditionally

我正在開發一個使用私有 package 的 web 應用程序。 在某些情況下,我寧願使用 package 的本地版本或 package 的不同版本。

是否有任何解決方案表明在 package.json 中使用不同版本的 package?

IE:

npm install --local

而我的 package.json 看起來像:

...
"dependencies": { 
...
    "my_package": if(local) "address_to_local_package/" else "5.6.1"
...
}

npm不適應這種情況(老實說,可能不應該)。 這似乎是通常在運行時通過NODE_ENV環境變量或類似機制處理的類型。 該模塊會根據NODE_ENV設置為"production"還是"development"來更改行為。 (但這只是慣例。如果需要,您可以使用諸如"local"類的值。)因此,與其安裝不同版本的模塊,不如根據該環境變量的值有一個行為不同的版本。

如果你真的想要完全安裝不同的代碼庫,這將需要一些努力,但你可以為postinstall編寫一個安裝npm運行。 然后,您的模塊只不過是一個腳本,然后postinstall根據環境變量或命令行標志確定實際安裝的內容。 不過,這對我來說似乎很脆弱。 如果你 go 這條路線,我會認真考慮你是否在這里解決了正確的問題。 NODE_ENV看起來更加優雅和傳統。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM