2017-09-07 9 views
4

私はそれを使用したい場合、私は瞬間のプラグインをインポートする必要があります知っています。このように:複数の瞬間のプラグインを使用するには?

import * as moment from "moment-timezone"; 

//here I can use moment.tr.names() etc. 

複数のプラグインを使用する場合はどうすればよいですか?私は瞬間の輸入の瞬間にそのプラグインを知って、彼らの機能を追加し、再び瞬間をエクスポートします。しかし、それが正しい場合、複数のプラグインを使用するにはどうすればよいですか?

1つのオプションは、のような別の名前でそれらをインポートすることです:

import * as momentJdate from "moment-jdateformatparser"; 
import * as momentTimezone from "moment-timezone"; 

それとも私はこのような一瞬のオブジェクトにそれらをマージすることができます(deepExtend使用):

let moment = {}; 
deepExtend(moment, momentJdate, momentTimezone); 

//here you should be able to use moment().toJDFString() and moment.tz.names() 

しかし、これらのどちらをクリーンコードのようです。これを行うより良い方法はありますか?

答えて

0

私にとってはうまくいくと思いますが、次々とインポートするのはきれいだと思います。例えば:それは不透明で、ノードは、あなたが最初は無意味である必要は思うかもしれませんどのように機能するかを理解せずにいるので

moment = require('moment-business-days'); 
moment = require('moment-timezone'); 
moment().tz('America/New_York').businessAdd(1).startOf('day').add(7, 'hours') 

それは、理想的ではありません。しかし、それは清潔で効果的です。

+0

「モーメント」がどのように構築されているのか正確にはわかりませんが、実際にはうまくいけば、ノードモジュールに慣れていない人にはこれは意味をなさないからです。 – Wernerson

+0

私はそれに同意します十分に明確ではない。それはキャッシングのことではなく、シングルトンのことです。 – fsaint

関連する問題