2016-04-12 14 views
2

Webpack構成のパラメータに基づいて、JSのコンポーネントを動的にインポートするソリューションを探しています。webpack configまたはcli paramsに基づいて動的にモジュールをインポート

THEME_PATHimport ./theme/{THEME_NAME}/indes.less

からは、動的にWebPACKのビルド上のWebPACKのPARAMまたはCLIパラメーターによって置き換えになるように。

これを解決するためのヒントがありますか?

答えて

4

それはDefinePluginで可能です:

のWebPACKの設定:

plugins: [ 
     ... 
     new webpack.DefinePlugin({ 
      __THEME__: '"' + process.env.THEME.toString() + '"' 
     }) 
    ] 

とあなたのコードで:

require('./theme/' + __THEME__ + '/index.less') 

あなたはTHEMEin this way(お使いのOSに依存を渡すことができますシェル)。

cliからの代わりにパラメータを渡すこともできます。


あなたは以下のファイルにテーマをインポートする場合は、ないJS:

以下のファイル:

@import "theme/@{THEME}/index.less"; 

のWebPACKの設定(以下ローダ):

'!less?{"modifyVars":{"THEME":"' + process.env.THEME + '"}}' 
+1

すばらしいです。これは私の問題を解決しました。これは、 require( './テーマ/' + __THEME__ + '/index.less')がうまくいきます。 しかし、 インポート '../theme/' + __THEME__ + '/index.less' 失敗 –

+0

ありがとう! 'import'構文でも可能ですか?どこでも 'import'を使用していますので、' require'を一箇所で使用する必要があります。 – szimek

+0

変数で 'import'を使うことはできませんので、できません。 –

関連する問題