5

プロジェクトで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を設定する方法について誰か助けてもらえますか?

4

2 に答える 2