Почему Webpack считает, что я использую сборку для разработки? - PullRequest
0 голосов
/ 02 декабря 2018

Это более старый проект, который скоро получит некоторые обновления, но до тех пор мне нужно использовать оригинальные конфиги Webpack.Странно то, что это не затрагивалось со времени последнего выпуска, но есть проблема с блокировкой.

При сборке для производства и запуска в браузере я получаю следующее сообщение:

Uncaught Error: Произошло минимизированное исключение;используйте неминифицированную среду разработки для полного сообщения об ошибке и дополнительных полезных предупреждений.

Похоже, что 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 голосов
/ 02 декабря 2018

Поскольку ваш код настроен на работу, он минимизируется, и вы получаете это сообщение.

Попробуйте настроить его на разработку (т. Е. NODE_ENV: JSON.stringify('development'))

Реагировать -Произошло минимизированное исключение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...