簡體   English   中英

將開發NPM依賴關系加入到單個元包中

[英]Joining development NPM dependencies into single meta-package

有沒有辦法創建一個meta-package, package.json

a)包含一個依賴項列表,這些依賴項不用於構建此包;

b)強制NPM安裝這些deps,當這個非常多的元數據包添加到項目中時,都用於開發的生產?

問題是我的樣板中有幾十個包(prod和dev),我從一個項目復制到另一個項目。 我想有一個私有包,它曾經添加到項目的package.json告訴npm其他prod和dev deps要安裝。 我想改進使用樣板的過程,因為當我改變它的時候,我(實際上是我的意願,而不是執行)在這個樣板的基礎上構建的所有項目中進行這些更改,還在開發中。

我已經設法將我經常使用的所有deps添加到我的meta-package的package.json production部分。 但是這種方法存在兩個問題:

1.構建元數據包時會安裝很多不必要的軟件包(我必須構建它,因為它包含ES6 / 7中的一些幫助程序);

2.我仍然需要將生產代碼列表復制/粘貼到每個新項目中,以提供NPM信息,在生產服務器上安裝什么。

非npm解決方案也是受歡迎的。

好吧,它似乎很容易做到:

1.首先,需要將樣板中使用的所有包分成兩組 - 運行app( production )所需的,以及構建和調試( development )所需的。

2.創建production元包( meta-prod )。 package.json內容:

...
"dependencies": {
    < Here we have the list of production dependencies.       >
},
...

如有必要,編譯它並推送到git(即github)。

3.創建development元包( meta-dev )。 package.json內容:

...
"dependencies": {
    < Here we have the list of development dependencies.       >
    < Please note, that this is in the 'dependencies' section, >
    < not the 'devDependencies'.                               >
},
...

把它推到git。

4.從樣板的package.json刪除所有依賴項,並將其替換為:

...
"dependencies": {
    "meta-prod": "git+https://github.com/your_account/meta-prod"
},
"devDependencies": {
    "meta-dev": "git+https://github.com/your_account/meta-dev"
},
...

而已! 依賴關系進行安裝時,你npm install ,將被適當考慮npm生產和發展。 現在您可以使用更小的package.json樣板並從單點更新您的開發人員列表。

唯一的缺點是,當您使用git包時, npm不會捕獲版本更改,因此要更新應用程序中的包,您必須從node_modules刪除元包目錄並重新運行npm install 要解決此問題,您可以將您的軟件包發布到npmjs.com(如果您是付費的npm客戶,最好將其發布為私有軟件包),並在每次更新時更改元軟件包版本。

這是樣板和元包示例:

暫無
暫無

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

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