2017-03-20 5 views
0

私はwebpack 2.2.1を使用しています。webpack.configファイルでどのように変数を使用しますか?

私はコマンドラインで変数を定義し、その変数をビルド設定で使用します。

だから、何かのような(または何でもそれはする必要があります)を探しますWebPACKのコマンドラインを与える:

webpack "--output-path=..." "--env.wibble=NOMF" 

どのように私は、その後のような何か書くことができます:私は定義することができますどのように

... 

const config = { 
    entry: { 
    ... 
    }, 
    output: { 
    ... 
    }, 

    plugins: [ 
    ... 
    new CopyWebpackPlugin([{ 
     from: '/somepath/' + env.wibble, 
     to: 'something.js' 
    }]),  
    ... 
    ], 

}; 

module.exports = config; 

をし、私のビルドで変数を使用しますか?

私はここでNODE_ENVを意図的に使用していません(できる場合)。

+0

process.argv argsを認識するために 'webpack'コマンドをエイリアスとしてバインドする必要があるかもしれません(https://nodejs.org/docs/latest/api/process.html#process_process_argv) –

答えて

2

--envオプションは、定義されたプロパティをwebpack configに渡すために使用されますが、これが機能するには、オブジェクト自体ではなく設定オブジェクトを返す関数をエクスポートする必要があります。

module.exports = function(env) { 
    const config = { 
    entry: { 
     // ... 
    }, 
    output: { 
     // ... 
    }, 
    plugins: [ 
     new CopyWebpackPlugin([{ 
     from: '/somepath/' + env.wibble, 
     to: 'something.js' 
     }]),  
    ], 
    }; 
    return config; 
}; 

あなたは暗黙的にオブジェクトを返すために、矢印関数を使用して、それを短縮することができます:あなたの設定は次のようになり

module.exports = env => ({ 
    entry: { 
    // ... 
    }, 
    output: { 
    // ... 
    }, 
    plugins: [ 
    new CopyWebpackPlugin([{ 
     from: '/somepath/' + env.wibble, 
     to: 'something.js' 
    }]),  
    ], 
}); 

Exporting a function to use --env参照してください。

関連する問題