Webpack不会创建反应构建生产版本

时间:2017-07-05 07:35:32

标签: reactjs webpack production

我有以下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'

1 个答案:

答案 0 :(得分:0)

我的猜测是这就是原因:

process.env.NODE_ENV = JSON.stringify('production');

应该是:

process.env.NODE_ENV = 'production';

或者,您可以使用Webpack -p命令行选项将NODE_ENV环境变量设置为production