我在webpack生成版本中设置process.env.NODE_ENV时遇到了一些麻烦。
我是通过
设置的new webpack.DefinePlugin({
'process.env': {
NODE_ENV: JSON.stringify('production'),
},
}),
在我的应用代码中,我的工作正常:
console.log(process.env.NODE_ENV);
转换为
console.log("production");
在构建的编译输出中。
但是我从redux那里得到的错误是没有设置。
在输出中我有这段代码
if (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {
(0, _warning2['default'])('You are currently using minified code outside of NODE_ENV === \'production\'. ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or DefinePlugin for webpack (http://stackoverflow.com/questions/30030031) ' + 'to ensure you have the correct code for your production build.');
}
和process.env是一个空对象。所以看起来webpack并没有正确地注入它。包含redux检查的函数如下所示:
/* 152 */
/***/ function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(process) {
我不确定我在这里缺少什么,但看起来我没有得到redux的优化构建版本,也许还有其他依赖项,因为这个错误。
我通常在生产构建和uglifing期间将供应商代码和应用程序代码拆分为单独的文件,但我已将此测试输出运行到单个文件而没有缩小只是为了测试此问题