2017-09-14 90 views
0

我有一個節點的應用程序,並要提取的子模塊的一些代碼(用自己的依賴簡單的節點模塊)。現在,我不想單獨爲git存儲庫或npm registry entries,但只是在子目錄中提供它們。的NodeJS子模塊

這些模塊之一被命名爲core的,因爲它應在主節點應用以及在其它子模塊一起使用。

比方說,這是我的結構:

  • myProject的
    • 的package.json
    • app.js
    • 核心
      • index.js
      • 的package.json
    • 夥伴
      • index.js
      • 的package.json

合作伙伴需要的核心和app.js需求核心爲好。我的方法是做到以下幾點:

NPM ERR:

cd partner 
npm install --save ../core 
cd .. 
npm install --save ./core 
npm install --save ./partner 
npm install 

這差錯!代碼ENOENT

NPM ERR! errno -2

npm ERR!系統調用重命名

NPM ERR! ENOENT ENOENT:沒有這樣的文件或目錄,重命名 '/home/tjorben/dev/myProject/node_modules/.staging/sliced-fc0a1515' - >「/家庭/ tjorben的/ dev/myProject的/核心/ node_modules/mquery/node_modules /切片「

我的目標IST,那我就必須做出NPM安裝的基本文件夾(myProject),它安裝依賴關係corepartner爲好。有什麼辦法可以做到這一點?

+0

只需要它們而不是將它們安裝爲依賴關係。 'require(「../ core」);''也許'npm link'是另一個選項(我對它不太瞭解,但是可以用它來測試CLI)。 – Wernerson

+0

,但這並不意味着我必須分別使用'npm install'核心和'partner'。那麼,'myProject'上的'npm install'還不夠? – thellmei

+0

但我會給'npm link'一個鏡頭。謝謝。 – thellmei

回答

1

您應該只有一個package.json爲您的項目意味着只有一個在myProject文件夾文件。您將myProjectcorepartner的所有依賴關係安裝到該package.json中。

現在,您可以要求所有的外部依賴有:require("depencency");

,如果他們是corepartner或任何其他模塊沒關係。你可以用同樣的方式要求他們。

如果你想要求自己的模塊只使用:require("./core");

記住要使用正確的路徑子模塊(就像在你partner子模塊../core)。