2014-04-18 162 views
1

我正在構建一個項目,我想將它分解成不同的模塊。我知道我應該把模塊放入node_modules/,但我想暫時將模塊提交給主版本控制(我現在使用.gitignore來忽略node_modules/目錄)。npm安裝在模塊中,不在node_modules/

我目前的項目設置:

services/ 
services/service1/package.json 
services/service1/index.js 
services/service2/package.json 
services/service2/index.js 
node_modules/* 
app.js 
package.json 

我的問題是它的工作原理與相對require秒,但在services/*/package.json的依賴性不會被加載。只加載主要的package.json

這是一個很好的方法嗎?有更好的嗎?我可以運行什麼命令來安裝所有依賴項?這對我的CI/CD設置來說更是一個問題。

謝謝。

+0

一些模塊是特定於平臺的,我不認爲將它們置於版本控制之下是一個好主意。 – jgillich

回答

0

我這裏https://github.com/npm/npm/issues/4017發現了類似的功能要求,似乎你不能做到這一點

一個方法,我看到的是創建一個從node_modules軟鏈接到您想要的服務和維護他們莫名其妙

也許你可以使用https://www.npmjs.org/doc/misc/npm-scripts.htmlpostinstall這個腳本?

+0

我以爲'postinstall'中的自定義腳本將是一個好的開始,但我完全沒有寫出腳本。我發現'找到。 -name package.json -maxdepth 2 -execdir npm install \;'但無法讓它按照需要工作。 – Simon

+0

我不擅長bash編程,我個人更喜歡node/js腳本(因爲你有npm,你可以從控制檯運行js腳本,爲什麼不) – llamerr