Module A
│
└─ Module B (devDependency in Module A's package.json)
│
└─ Module C (dependency in Module B's package.json)
モジュールBは私が開発しているものです。しかし、私はモジュールCがモジュール012で呼び出されることを知っていますrequire('Module C')
。そして私が持っているエラーはCannot find module 'Module C'
です。NodeJSの子モジュールの子モジュールを親モジュールにインポートさせる方法
私の現在のソリューションがある醜いです:私はそこに期待していますモジュールBモジュールA
require('Module_B').Module_C
で
exports.Module_C = require('Module_C) || require(path.resolve(__dirname, 'node_modules/Module_C/index');
のindex.jsで
はそれを行うには良い方法です。 。
モジュールAがrequireモジュールCを実行する場合、モジュールAの直接の依存関係である必要があり、NPMはそれをモジュールAが直接利用できるようにします。最新のNPMは、AとBの両方から同じモジュールCを使用できるように、依存モジュールをよりフラットな階層に保ちます(ただし、両方の依存モジュールとして個別にリストされる必要があります)。 – jfriend00
モジュールCをモジュールAの依存関係にしない場合は、AがBから 'require( 'Module_B')。Module C'のようにそれを得ることができるように、Bのインターフェースをプロキシする必要があります。それらはあなたの2つの最良の選択肢です。 NPMがそれを利用可能にするか、それを代理するように依存関係を作ります。モジュールBのファイル階層に到達してモジュールAからモジュールCに到達することもできますが、これは推奨される方法ではありません。 – jfriend00
私はそれがそれをすることを知っています。しかし、Module_CのようにModule_D、Module_Eがあり、Module_BのユーザーであるModule_AがnpmにModule_C/D/Eをインストールすることを望まない人がいます。私はそのユーザーがModule_Bをインストールすることができればいいと思う。 –