【发布时间】:2016-04-01 11:13:25
【问题描述】:
我正在我的项目中设置 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
如果我将我的Constants.PRODUCTION 设置为true,则构建中不包含 DevTools。不知何故,我应该使用 DefinePlugin 或 ProvidePlugin(Redux DevTools 文档都提到了它们,但在不同的地方),但我不知道怎么做。我正在使用 Windows 10、DevTools 3.0.0 和 npm 脚本来运行构建过程。谁能帮助我在我的 webpack 配置文件中设置 DefinePlugin 或 ProvidePlugin 吗?
【问题讨论】:
标签: javascript windows npm webpack redux-devtools