Итак, это полная ошибка: В настоящее время вы используете минифицированный код за пределами NODE_ENV === 'production'. Это означает, что вы выполняете более медленную разработку Redux.
Я использую стороннюю графическую библиотеку CanvasJS, которая нуждается в доступе к глобальной области. Когда я импортирую его в любой из моих модулей, кажется, что фактический код ломается, когда в браузере (возможно, проблема this
).
Я решил его с помощью Webpack и gulp связал bundle.min.js с миниатюрной библиотекой диаграмм.
Это работает отлично, пока я не попытаюсь создать сборку. Я думаю, что ссылка на 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 как External, но это тоже не сработало. Как я могу заставить Redux не "работать медленнее" и иметь ссылки на глобальные объекты?