2017-09-14 4 views
0

私はノードアプリケーションがあり、サブモジュール(独自の依存関係を持つ単純なノードモジュール)でいくつかのコードを抽出したいと考えています。今のところ、私は別のディレクトリgitを置いてはいけません。あるいは、npm registry entriesをサブディレクトリに入れてください。NodeJSサブモジュール

これらのモジュールの1つは、メインノードアプリケーションおよび他のサブモジュールで使用する必要があるため、coreという名前が付けられています。

のは、これが私の構造体であるとしましょう:

  • MYPROJECT
    • package.json
    • app.js
    • コア
      • index.js
      • package.json
    • パートナー
      • index.js
      • package.json

パートナーも同様に、コアとapp.jsニーズコアを必要とします。私のアプローチは、次の操作を実行することでした。

にエラーが発生した
cd partner 
npm install --save ../core 
cd .. 
npm install --save ./core 
npm install --save ./partner 
npm install 

NPMのERR!コードENOENT

npm ERR!エラー番号-2

npm ERR!システムコールの名前変更

npm ERR! ENOENT:そのようなファイルやディレクトリはありません。 '/home/tjorben/dev/myProject/node_modules/.staging/sliced-fc0a1515' - > '/ home/tjorben/dev/myProject/core/node_modules/mquery/node_modules/sliced 「

私の目標イスト、私はちょうどNPMは、ベースフォルダ(myProject)にインストールするために持っており、それは同様corepartnerの依存関係をインストールしていること。これを達成する方法はありますか?

+0

依存関係としてインストールする代わりに、それらを要求するだけです。 'require(" ../ core ");'おそらく 'npm link'は別のオプションです(私はそれについてよく知らないけどCLIでそれをテストすることができます)。 – Wernerson

+0

しかし、私は 'npm install'コアと' partner'を別々に持っていなければなりませんか?ですから、 'myProject'に' npm install'するだけでは不十分でしょうか? – thellmei

+0

しかし、私は 'npm link'を打ちます。ありがとう。 – thellmei

答えて

1

myProjectフォルダー内のファイルのみを意味するプロジェクトには、package.jsonというファイルが1つ必要です。 myProjectcoreおよびpartnerのすべての依存関係をpackage.jsonにインストールします。

あなたは今とすべての外部依存関係を必要とすることができますrequire("depencency");

彼らはcorepartnerまたは他のモジュールのためのものである場合、それは問題ではありません。同じ方法でそれらを要求することができます。

独自のモジュールを必要とする場合だけ使用します。require("./core");

は(あなたのpartnerサブモジュールで../coreのような)サブモジュールへの正しいパスを使用することを忘れないでください。

関連する問題