Webpack为什么认为我正在运行开发版本?

时间:2018-12-02 19:02:33

标签: javascript reactjs webpack

这是一个较旧的项目,很快将获得一些更新,但是在那之前,我需要使用原始的Webpack配置。奇怪的是,自上次发行以来就没有触及过,但是存在阻止问题。

捆绑生产版本并在浏览器中运行时,我收到以下消息:

  

未捕获的错误:发生了最小的异常;使用未缩小的开发   完整的错误消息和其他帮助的环境   警告。

Webpack似乎认为我正在开发模式下运行,但是使用了缩小的React文件,因此出现了消息。我已经跟踪了所有发生的process.env.NODE_ENV,它们都记录了"production"

这是捆绑文件的构建命令:

node --max_old_space_size=3072 node_modules/.bin/webpack --verbose --colors --display-error-details --config webpack/prod.config.js

…和Webpack配置:

require('babel/polyfill');

// Webpack config for creating the production bundle.
const path = require('path');
const webpack = require('webpack');
const strip = require('strip-loader');

const projectRootPath = path.resolve(__dirname, '../');
const assetsPath = path.resolve(projectRootPath, './static/dist');

const webpackPostcssTools = require('webpack-postcss-tools');
const map = webpackPostcssTools.makeVarMap('./src/theme/index.css');

// https://github.com/halt-hammerzeit/webpack-isomorphic-tools
const WebpackIsomorphicToolsPlugin = require('webpack-isomorphic-tools/plugin');
const webpackIsomorphicToolsPlugin = new WebpackIsomorphicToolsPlugin(require('./webpack-isomorphic-tools'));

module.exports = {
    devtool: 'source-map',
    context: path.resolve(__dirname, '..'),
    entry: {
        'main': [
            './src/client.js'
        ]
    },
    output: {
        path: assetsPath,
        filename: '[name]-[chunkhash].js',
        chunkFilename: '[name]-[chunkhash].js',
        publicPath: '/dist/'
    },
    module: {
        loaders: [
            { test: /\.jsx?$/, exclude: /node_modules/, loaders: [strip.loader('debug'), 'babel']},
            { test: /\.json$/, loader: 'json-loader' },
            { test: /\.css$/, loaders: ['style', 'css?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!postcss'] },
            { test: /\.woff(\?v=\d+\.\d+\.\d+)?$/, loader: 'url-loader?limit=10&mimetype=application/font-woff' },
            { test: /\.woff2(\?v=\d+\.\d+\.\d+)?$/, loader: 'url-loader?limit=10&mimetype=application/font-woff' },
            { test: /\.svg$/, loader: 'svg-inline' },
            { test: webpackIsomorphicToolsPlugin.regular_expression('images'), loader: 'url-loader?limit=10' },
            { test: /\.modernizrrc$/, loader: 'modernizr' }
        ]
    },
    progress: true,
    resolve: {
        alias: {
            font: __dirname + '/../src/fonts',
            images: __dirname + '/../static/images',
            modernizr$: path.resolve(__dirname, '../.modernizrrc')
        },
        modulesDirectories: [
            'src',
            'node_modules'
        ],
        extensions: ['', '.json', '.js', '.jsx']
    },
    postcss: () => {
        return [
            require('autoprefixer')({
                browsers: ['last 3 versions']
            }),
            require('precss'),
            require('postcss-custom-media')({
                extensions: map.media
            })
        ];
    },
    plugins: [
        new webpack.ProvidePlugin({
            $: 'jquery',
            jQuery: 'jquery',
            'window.jQuery': 'jquery',
            'Scribe': 'scribe-editor'
        }),

        new webpack.DefinePlugin({
            __CLIENT__: true,
            __SERVER__: false,
            __DEVELOPMENT__: false,
            __DEVTOOLS__: false
        }),

        // ignore dev config
        new webpack.IgnorePlugin(/\.\/dev/, /\/config$/),

        // set global vars
        new webpack.DefinePlugin({
            'process.env': {
                // Useful to reduce the size of client-side libraries, e.g. react
                NODE_ENV: JSON.stringify('production'),
                API_HOST: JSON.stringify(process.env.API_HOST || 'api'),
                WEB_HOST: JSON.stringify(process.env.WEB_HOST || 'https://www.website.com')
            }
        }),

        // optimizations
        new webpack.optimize.DedupePlugin(),
        new webpack.optimize.OccurenceOrderPlugin(),
        new webpack.optimize.UglifyJsPlugin({
            compress: {
                warnings: false
            }
        }),

        webpackIsomorphicToolsPlugin
    ]
};

我似乎找不到问题。跳出来的东西看起来很腥吗?

1 个答案:

答案 0 :(得分:0)

由于您的代码已设置为正式版,因此代码越来越小,您正在收到该消息。

尝试将其设置为开发状态(即NODE_ENV: JSON.stringify('development')

React - Minified exception occurred