我有以下webpack-production.config.js
文件:
/* jshint node: true */
var webpack = require('webpack');
process.env.NODE_ENV = JSON.stringify('production');
module.exports = {
watch: false,
entry: {
index: './client/js/index.js',
article: './client/js/article.js',
error: './client/js/error.js'
},
output: {
filename: '[name].bundle.js'
},
module: {
loaders: [
// JSON
{ test: /\.json$/, loader: "json-loader" },
// React & ES2015
{
test: /.jsx?$/,
loader: 'babel-loader',
query: {
presets: ['react', 'es2015']
},
}
]
},
plugins: [
new webpack.DefinePlugin({
'process.env': {
NODE_ENV: JSON.stringify('production')
}
}),
new webpack.optimize.UglifyJsPlugin({
compress: { warnings: false }
})
]
};
当我使用命令webpack --config webpack-production.config.js
运行此任务时,会生成捆绑文件,但是当我在brawser中打开我的站点时,React devtool扩展名会显示:This page is using the development build of React.
。
我的配置文件有什么问题?如何生成React
生产版本?
我提到React
的官方网站说我必须使用上面两个插件,这应该就足够了。
已更新
我在path
设置中添加了output
选项,现在我出现以下错误
在braoser控制台中:
Uncaught TypeError: Cannot read property '_' of undefined
我提到我使用underscore
这样:
import _ from 'underscore'
答案 0 :(得分:0)
我的猜测是这就是原因:
process.env.NODE_ENV = JSON.stringify('production');
应该是:
process.env.NODE_ENV = 'production';
或者,您可以使用Webpack -p
命令行选项将NODE_ENV
环境变量设置为production
。