プロジェクトでRedux DevTools ( https://www.npmjs.com/package/redux-devtools ) をセットアップしていますが、本番用のプロジェクトをビルドするときに DevTools を除外したいと考えています。ドキュメントによると、これは次のコードを使用して実現できます。
if (process.env.NODE_ENV === 'production') {
module.exports = require('./configureStore.prod');
} else {
module.exports = require('./configureStore.dev');
}
私はすでに定数を持つモジュールを持っているので、そこに NODE_ENV のチェックを入れました。
Constants.PRODUCTION = process.env.NODE_ENV === 'production'
私のWebpack構成ファイルには、本来のように機能する次のコードがあります。
const production = process.env.NODE_ENV === 'production'
var config = {
// configuration goes here
}
if (production) {
config.plugins = [
new webpack.optimize.UglifyJsPlugin({
compress: {
warnings: false,
},
}),
].concat(config.plugins)
}
ビルドを実行set NODE_ENV=production&&webpack
すると縮小され、ビルドを縮小しないだけで使用webpack
できます。ただし、ソース コード自体では NODE_ENV は定義されていません。
console.log(process.env.NODE_ENV) // Output: Undefined
myConstants.PRODUCTION
をに設定するとtrue
、DevTools はビルドに含まれません。どういうわけか、DefinePlugin または ProvidePlugin を使用することになっています (Redux DevTools のドキュメントでは、両方とも別の場所で言及されています) が、方法がわかりません。Windows 10、DevTools 3.0.0、および npm スクリプトを使用してビルド プロセスを実行しています。Webpack構成ファイルでDefinePluginまたはProvidePluginを設定する方法について誰か助けてもらえますか?