@fillpower

Как добавить минификацию в webpack?

Добрый день, есть такая сборка, у меня не выходит добавить uglify JS в production сборку, подскажите как сделать это правильно?

const path = require('path')

const postcssNested = require('postcss-nested')
const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer')
const CopyPlugin = require('copy-webpack-plugin')
const UglifyJsPlugin = require('uglifyjs-webpack-plugin')

const output = path.resolve(__dirname, 'target')

module.exports = {
    entry: {
        index: require.resolve('./src/index.js')
    },
    output: {
        path: output,
        filename: 'index.js'
    },
    module: {
        rules: [
            // js-файлы
            {
                test: /\.js$/,
                exclude: /node_modules[\\/].*/,
                use: require.resolve('babel-loader')
            },
            // css-файлы
            {
                test: /\.css$/,
                use: [
                    require.resolve('style-loader'),
                    {
                        loader: require.resolve('css-loader'),
                        options: {
                            modules: true,
                            importLoaders: 1
                        }
                    },
                    {
                        loader: require.resolve('postcss-loader'),
                        options: {
                            plugins: [
                                postcssNested
                            ]
                        }
                    }
                ]
            }
        ]
    },
    plugins: [
        new CopyPlugin([
            {
                from: 'static',
                to: '.'
            }
        ])
    ]
}

if (process.env.NODE_ENV === 'production') {
    module.exports.plugins.push(
        new BundleAnalyzerPlugin({
            reportFilename: './statistics.html',
            analyzerMode: 'static',
            openAnalyzer: false
        })
    )
}
  • Вопрос задан
  • 146 просмотров
Пригласить эксперта
Ответы на вопрос 2
sergiks
@sergiks Куратор тега JavaScript
♬♬
потеряли:
optimization: {
    minimizer: [
      new UglifyJsPlugin({
        sourceMap: true
      })
    ]
  },


См. документацию по плагину UglifyJsPlugin
Ответ написан
pterodaktil
@pterodaktil
js developer
const config = {
 ...
 optimization: {}
};

if (process.env.NODE_ENV === "production") {
  config.optimization.minimizer = [
    new UglifyJsPlugin({
      sourceMap: true,
      parallel: true,
      uglifyOptions: {
        compress: {
          drop_console: true
        }
      }
    })
  ];
}

module.exports = config;
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы