package.json で 'main' パラメータを使用するにはどうすればいいですか? 質問する

package.json で 'main' パラメータを使用するにはどうすればいいですか? 質問する

すでにかなりの調査をしました。しかし、Node プロジェクトの package.json の 'main' パラメータについてはまだ疑問があります。

  1. このフィールドに入力するとどのようなメリットがありますか? 別の言い方をすると、このフィールドが表示された場合、別のスタイルでモジュールを開始できますか?
  2. メイン パラメータに複数のスクリプトを入力できますか? できる場合、スクリプトは 2 つのスレッドとして開始されますか? できないと、モジュール内で 2 つのスクリプトを開始し、それらを並行して実行するにはどうすればよいですか?

2 番目の質問がかなり奇妙であることは承知しています。これは、OpenShift で Node.js アプリケーションをホストしたのですが、そのアプリケーションは 2 つの主要コンポーネントで構成されているためです。1 つは REST API で、もう 1 つは通知配信サービスです。

通知配信プロセスが単一のスレッドとして実装された場合、REST API がブロックされるのではないかと心配しています。ただし、それらは同じ MongoDB カートリッジに接続する必要があります。さらに、可能であれば両方のコンポーネントが同じギアで機能することができれば、ギアを 1 つ節約できます。

ご提案があれば歓迎いたします。

ベストアンサー1

npm ドキュメントより:

main フィールドは、プログラムへの主要なエントリ ポイントとなるモジュール ID です。つまり、パッケージの名前が foo で、ユーザーがそれをインストールし、require("foo") を実行すると、メイン モジュールのエクスポート オブジェクトが返されます。

これは、パッケージ フォルダーのルートを基準としたモジュール ID である必要があります。

ほとんどのモジュールでは、メイン スクリプトのみを用意し、それ以外のスクリプトはあまり用意しないのが最も合理的です。

簡単に言うと:

  1. パッケージへのエントリ ポイントがルート フォルダーの と異なる場合にのみ、mainにパラメータが必要です。たとえば、エントリ ポイントをまたはに設定することがよくありますが、この場合、対応するスクリプトはでとして記述する必要があります。package.jsonindex.jslib/index.jslib/<packagename>.jsmainpackage.json
  2. mainエントリ ポイントrequire('yourpackagename')を明確に定義する必要があるため、という 2 つのスクリプトを持つことはできません。

おすすめ記事