2016-08-12 4 views
0

私はいくつかのノードパッケージを持っています。それらにはクラスが含まれており、module.exportsによって簡単にエクスポートできます。ここで NPMはビルドの引数に応じて余分なコードを追加します

は、ファイルの最後の例である:

module.exports.FlarePlayIcon = FlarePlayIcon; 
module.exports.FlarePauseIcon = FlarePauseIcon; 
module.exports.VolumeIcon = FlareVolumeIcon; 
module.exports.LoadingIcon = FlareLoadingIcon; 

完全なファイル:https://github.com/FlareMediaPlayer/FlareIcons/blob/master/src/flare-icons.js

すべてが構築され、期待通りにコンパイルします。今私が何時間もグーグルグーグルで働いていて、正確に働くことができないのは、クラスを "グローバルモード"でエクスポートする方法を追加して、クラスをグローバルにする何らかの並べ替えが追加されているようです:

window.Flare = Flare || {}; 
Flare.FlarePlayIcon = FlarePlayIcon; 

だから基本的に私はオンとオフの切り替え方法ビルドスクリプトを使用して、グローバルスコープにクラスを追加、またはファイルを作ることができるようにしたいが、私はすべてのアイデアを開いています。私は通常、その情報が任意の値であれば、browserifyを使ってフロントエンド用のスクリプトを作成します。

EDIT: はので、私は必要なものこれを行うには、変数やフラグを渡す方法です:

if (mode === "global") { 

    window.Flare = Flare || {}; 
    window.Flare.FlarePlayIcon = FlarePlayIcon; 
    window.Flare.FlarePauseIcon = FlarePauseIcon; 
    window.Flare.VolumeIcon = FlareVolumeIcon; 
    window.Flare.LoadingIcon = FlareLoadingIcon; 

} else { 

    module.exports.FlarePlayIcon = FlarePlayIcon; 
    module.exports.FlarePauseIcon = FlarePauseIcon; 
    module.exports.VolumeIcon = FlareVolumeIcon; 
    module.exports.LoadingIcon = FlareLoadingIcon; 

} 

は、私はそれを動作させるために、条件文の中で何を置くことができますか?

+0

あなたのユースケースは何ですか?:メイクファイル内 それがブラウザにあるかどうかを確認するテストですか? – slebetman

+0

それでは、もっと大きなスタンドアロンプ​​ラグインの一部になることもありますが、スクリプトを含めてアイコンを自由に使えるようにしたいと思っています。 – brianxautumn

+0

私はbrowserifyを使用しないので、通常は 'module'が存在するかどうかを検出します。それができれば、それがnode.jsにあることを確かめることができます。もしそうでなければ、それはブラウザにあると仮定します。それから私は、私がそれから作ることができるすべての仮定で、私が必要とするものを世界に輸出します。それはあなたのために働くだろうか? – slebetman

答えて

0

ファイルを解析する必要があり、環境変数を文字列リテラルに置き換えることができます。バベルのようにこれを行うプラグインがいくつかあります。この場合、私はenvifyを使用しています。

browserify src/flare-icons.js -t [ envify purge --MODE global ] | \... 

ので、その後、 "グローバル" へ

console.log(process.env.MODE); 

evalueates

https://github.com/hughsk/envify#purging-processenv

http://babeljs.io/docs/plugins/transform-inline-environment-variables/

関連する問題