【问题标题】:Webpack doesn't create react build production versionWebpack 不创建反应构建生产版本
【发布时间】:2017-12-08 17:48:26
【问题描述】:

我有以下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的官网说我必须使用上面两个插件,应该足够了。

更新

我在output 设置中添加了path 选项,现在出现以下错误 在 braoser 控制台中:

Uncaught TypeError: Cannot read property '_' of undefined

我提到我像这样使用underscore

import _ from 'underscore'

【问题讨论】:

  • 转json有什么特殊用途吗?

标签: reactjs webpack production


【解决方案1】:

我的猜测是这就是原因:

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

应该是:

process.env.NODE_ENV = 'production';

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

【讨论】:

    猜你喜欢
    • 2022-08-16
    • 2020-07-09
    • 2017-10-07
    • 2019-04-04
    • 2018-07-22
    • 2018-04-12
    • 2020-10-16
    • 2018-12-20
    • 2018-01-18
    相关资源
    最近更新 更多