2016-10-03 7 views
2

私は別のプロジェクトでユーティリティとして使用されるjavascriptプロジェクトを持っていて、もっと多くのプロジェクトで使用できるようにnpmを使用してパッケージ化したい。私が作成したプロジェクト構造は次のとおりです。npmを使用してノードモジュールに分割して依存関係ツリーを作成する

 
Project/ 
|-- src/ 
| |-- main.js 
| |-- index.js 
| 
| |-- extensions/ 
| | |-- core-1.js 
| | |-- ... 
| | |-- core-n.js 
| | |-- other-1.js 
| | |-- ... 
| | |-- other-n.js 
| | 

メインファイルは、拡張子によって使用され、その中にいくつかのユーティリティ機能を持つオブジェクトを作成します。 index.jsファイルは、拡張機能やメインからすべてのオブジェクトと関数を取り出し、単一の名前空間に入れてエクスポートします。私が望むのは、誰もがこのノードモジュールをインストールするときに、メインファイルとコア拡張でユーティリティを使用できるはずです。他の拡張機能を使用する場合は、他の拡張機能を明示的に要求する機能が必要です。メインプロジェクトに依存関係がある他の拡張のために別々のノードプロジェクトを作成することをお勧めしますか?またはこれを達成するためにnpmやノードが提供する他の方法がありますか?あなたがrequire("<your-module>")を行うと、Node.jsの

答えて

1

package.jsonまたはデフォルトでindex.jsあなたの内側mainプロパティに記載されたファイルをロードします。特定のパッケージから個々のファイルを読み込む方法があります。モジュール名の後ろにスラッシュを付けたファイルパスを追加するだけです。

あなたの例では拡張子が個別にこの

var u1 = require("Project/src/extensions/other-1"); 
var u2 = require("Project/src/extensions/other-2"); 

のみother-1other-2拡張子は、それぞれの変数u1u2にロードされますようにロードすることができます。

適切なファイルがindex.jsmain.jsにロードされていることを確認してください。ここで

あなたはノードモジュールとしてプロジェクトをインストールしてみてください、それがどのように動作するかを理解するためにそれで遊んでみてください例ノードモジュールhttps://github.com/juzerali/require-demo

です。

+1

ありがとう、私はこのアプローチを試み、それは私のためにうまくいった。私の拡張機能はコアに依存していることに注意してください。そのため、拡張機能ファイルの中にコアを必要としなければなりませんでした。 – Yusufali2205

関連する問題