10

私は流星でmomentjsを使いたいと思っています。これはnpmパッケージなので、私が理解していることから、流星は独自のパッケージシステムを使用しているため、流星では使用できません。だからここに私の質問があります:

  • 流星でmomentjsを使用する方法を知っている人はいますか?
  • meteor で npm パッケージを使用する方法はありますか?

2017 EDIT : Meteor 1.4 以降では、npm パッケージ管理により、npm モジュールの標準インポートと Atmosphere モジュールの名前付きインポートが可能になります。

4

5 に答える 5

10

moment.js、validate.js、underscore.string.js などのスタンドアロン js ライブラリの場合は、ソース ファイルをlibフォルダーにドロップするだけです。client/libクライアントでのみ使用されるライブラリ (validate.js など) と、libクライアントとサーバーの両方で使用できるライブラリ (moment.js など) に使用します。

隕石を使用する場合は、大気パッケージを利用できます。あなたが探しているもののいくつかがそこにあるかもしれません。

meteor から npm モジュールを使用することは、多くの人が (正当な理由で) 質問するものです。meteor が npm パッケージと対話する方法が大幅に変更されようとしていると直接聞いたことがありますが、ここでいくつかのメモを確認できます。

于 2013-02-03T03:09:25.557 に答える
2

次の理由により、私はより複雑な問題を抱えていました。

  1. 「pl」ロケールを追加したかった
  2. TypeScriptで動作するために必要でした

これらの目標を達成するためのより簡単な方法があることを知りたいのですが、最終的に機能させるために私が行った手順は次のとおりです。

ステップ1。$ meteor add momentjs:moment

ステップ 2. ファイルhttps://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/moment/moment-node.d.tsをダウンロードし、./typings/moment/moment.d.ts として保存します (何らかの理由でmoment-node.d.ts を参照するほぼ空のhttps://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/moment/moment.d.tsファイルのみをダウンロードするため、実行するだけでtypings install dt~moment--global --saveはうまくいきません。実際のものを含むファイル)

ステップ 3.次の行を moment.d.ts に追加します。

declare module "meteor/momentjs:moment" {
  var moment: moment.MomentStatic;
}

ステップ 4. https://raw.githubusercontent.com/moment/moment/develop/locale/pl.js (またはその他のロケール) をダウンロードし、./client/lib/moment/locale/pl.js (または./client 以下の他のディレクトリ)

ステップ 5. ./client/lib/moment/locale/pl.js の最初と最後を編集し、ローダー コードを最初の 1 行に置き換えます。

import { moment } from 'meteor/momentjs:moment';

ステップ 6. 最後に、任意のモジュールでモーメント js を使用できます。追加するだけです

import { moment } from "meteor/momentjs:moment";

ファイルの先頭で、たとえば次のことができます。

moment(ts).locale('pl').format('LLL');

「meteor/tap:i18n」パッケージを使用している場合は、TAPi18n.setLanguage(...);起動時に渡した言語と同じ言語を使用することをお勧めします。でtypings/globals/meteor_tap_i18n.d.tsファイルを作成する必要があるかもしれません

declare module "meteor/tap:i18n" {
  export var TAPi18n : TAPi18nStatic;
  interface TAPi18nStatic{
     setLanguage(name:string):any;
     getLanguage():string;
     __(name:string,params?:any):string;
  }
}

そして、モジュールでそれを使用できます

import { TAPi18n } from 'meteor/tap:i18n';
//...
moment(ts).locale(TAPi18n.getLanguage()).format('LLL');
于 2016-06-20T10:40:41.000 に答える