所以这是一个完整的错误: 您当前正在使用NODE_ENV ===’production’之外的缩小代码。 这意味着您正在运行较慢的Redux开发版本。
我使用的是第三方图表库CanvasJS,该库需要访问全局范围。当我将其导入我的任何模块中时,似乎在浏览器中实际的代码就会中断(可能是一个this问题)。
this
我使用Webpack解决了这个问题,并用gulp将bundle.min.js与缩小的Charting库捆绑在一起。
直到我尝试生产构建,此方法才能正常工作。我认为对 CanvasJS 的引用可能在此过程中被弄乱了。
我的Webpack.config文件:
var debug = process.env.NODE_ENV !== "production"; var webpack = require('webpack'); var path = require('path'); module.exports = { context: path.join(__dirname, "public"), devtool: debug ? "inline-sourcemap" : null, entry: "./js/main.js", resolve: { alias: { 'react': 'react-lite', 'react-dom': 'react-lite' } }, module: { loaders: [ { test: /\.jsx?$/, exclude: /(node_modules|bower_components)/, loader: 'babel-loader', query: { presets: ['react', 'es2015', 'stage-0'], plugins: [ 'transform-class-properties', 'transform-decorators-legacy'], } } ] }, output: { path: __dirname + "/public/build/", filename: "bundle2.min.js" }, plugins: debug ? [] : [ new webpack.optimize.DedupePlugin(), new webpack.optimize.OccurenceOrderPlugin(), new webpack.optimize.UglifyJsPlugin(), // new webpack.optimize.AggressiveMergingPlugin() new webpack.optimize.UglifyJsPlugin({ mangle: false, sourcemap: false }), ], };
我试图将CanvasJS标记为“外部”,但这也不起作用。如何才能使Redux不会“运行缓慢”,并具有对全局对象的引用?
您需要添加:
new webpack.DefinePlugin({ 'process.env': { 'NODE_ENV': JSON.stringify('production') } })
为您的生产配置