Meteorで npm を介してノードモジュールを使用するにはどうすればよいですか?
それとも、パッケージングAPIに依存するものですか?
または推奨される所定の方法はありますか?
2016 年 3 月 28 日にリリースされたMeteor 1.3は、アプリに完全な ES6 (ES2015) モジュールのサポートと、すぐに使える NPM サポートを提供します。アプリとパッケージは、クライアントとサーバーで NPM モジュールを直接かつ簡単にロードできるようになりました。
1.3 を使用できる場合は、http://guide.meteor.com/using-packages.html#installing-npmを確認してください。
たとえば、moment.js を使用するには:
meteor npm install --save moment
次に、コードで:
import moment from 'moment';
// this is equivalent to the standard node require:
const moment = require('moment');
古いバージョンの Meteor を使用する必要がある場合は、以下の残りの回答をお読みください。
前流星 1.3 :
v0.6.0 以降、Meteorはサードパーティ パッケージの助けを借りて NPM モジュールと直接統合されています。たとえば、次のようなモジュールを使用するにはws
、
sudo npm install -g ws
(または、ローカル インストールの場合は、これを参照してください) 。サーバーの JavaScript ファイルで、
var Websocket = Npm.require('ws');
var myws = new Websocket('url');
コア ノード モジュールを使用するには、対応するNpm.require()
呼び出しを行うだけvar Readable = Npm.require('stream').Readable
です。
Arunoda が開発したNPM パッケージのおかげで、230,000を超えるNPM モジュールのいずれかを Meteor で直接使用できます。
npm サポートの最初の発表から、スマート パッケージから Npm パッケージへの依存関係を定義することもできます。
Npm.depends
inへの呼び出しを追加することで、スマート パッケージが依存関係を直接定義できるようになりましたpackage.js
。
Npm.depends({
"awssum": "0.12.2",
"underscore.string": "2.3.1"
});
これらはすべて、Meteor の他の部分と同様に、ホット コード リロードでうまく機能します。変更を加えると、バンドラーは不足している npm パッケージを自動的にダウンロードし、その依存関係を再固定します。
サーバー コード内で NPM モジュールを使用するにNpm.require
は、通常の plain と同じように使用しますrequire
。特に、__meteor_bootstrap__.require
は削除され、その用途はすべて に変換されましたNpm.require
。
この回答は、2013年4月にリリースされ、直接
npm
統合が追加された0.6.0より前のバージョンのMeteorに適用されることに注意してください。
通常どおりにモジュールをインストールしてnpm
から使用します
var require = __meteor_bootstrap__.require,
pd = require("pd"),
after = require("after") // etc
必要なモジュールをロードします
私はMeteorpediaでこれについて完全な記事を書きました:
http://www.meteorpedia.com/read/npm
この記事では、アプリやパッケージの両方で npm を使用する方法、および通常のコールバックとイベント エミッター コールバックをラップして Meteor と Fibers で適切に動作するための一般的なパターンについて説明し、Arunoda の async-utilities と追加リソースへの参照を含めます。
Meteor 0.6.5 の時点でこれを行う方法について Gist を書きました。 Node.js npms を Meteor.js プロジェクトに追加する方法。
Node.jsのすべての依存関係を適切にインストールするスクリプトを使用しています。Meteor エンジン ブランチの公式サポートと同様に動作します (実行時に依存関係をインストールします) が、 Gitリポジトリや同様のグッズからのインストールもサポートします。