Уменьшите размер пакета веб-пакетов в реагирующих на ошибки .js - PullRequest
2 голосов
/ 24 сентября 2019

Я настраиваю свою конфигурацию веб-пакета для приложения реакции.Но я не могу уменьшить размер bundle.js.В режиме разработки размер составляет около 4 МБ, а в рабочем режиме - около 1,5 МБ.Вот мой конфиг: -

const path = require('path');
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin')

var config = {
  entry: './src/index.js',
  module: {
    rules: [
      {
        test: /\.(js|jsx)$/,
        exclude: /node_modules/,
        use: ['babel-loader']
      },
      {
        test: [/.css$/],                
        use:[                    
         'style-loader',                  
         'css-loader'
        ] 
      },
      {
        test: /\.(png|jpg|gif|jpeg|svg)$/,
        use: [
          {
            loader: 'file-loader',
            options: {
              name: '[name].[ext]',
              outputPath: 'assets/images'
            }
          }
        ]
      }
    ]
  },
  devtool: 'source-map',
  resolve: {
    extensions: ['*', '.js', '.jsx']
  },
  output: {
    path: path.resolve(__dirname, 'dist'),
    publicPath: '/',
    filename: 'bundle.js'
  },
  devtool: 'source-map',
  plugins: [
    new webpack.HotModuleReplacementPlugin(),
    new HtmlWebpackPlugin({
      template: 'index.html'
    })
  ],
  devServer: {
    contentBase: './dist',
    hot: true,
    port: 3000,
    historyApiFallback: true
  }
}
module.exports = (env, argv) => {
  if (argv.mode === 'development') {
    config.plugins = config.plugins.concat([
        new BundleAnalyzerPlugin(),
      ])
  }
  if (argv.mode === 'production') {
    config.plugins = config.plugins.concat([
        new CleanWebpackPlugin(),
      ])
  }
  return config;
}

Пожалуйста, помогите мне уменьшить размер файла bundle.js.Заранее спасибо:)

См .: Размер пакета в режиме разработки

См .: Размер пакета в режиме печати

Скрипт для запуска dev webpack-dev-server --config ./webpack.config.js --mode development --open --hot

Скрипт для запуска prod webpack --config ./webpack.config.js - изготовление модов --open --hot

Ответы [ 2 ]

1 голос
/ 24 сентября 2019

Попробуйте добавить

        new DefinePlugin({
            'process.env.NODE_ENV': JSON.stringify("production"),
        }),

в plugins.React специально устраняет много кода отладки, если вы установите его.Другие библиотеки могут искать или не искать его.


Возможно, это добавлено в новую опцию mode, документы немного изменились с тех пор, как я в последний раз смотрел.

0 голосов
/ 24 сентября 2019

Размер пакета 3.11MB в dev выглядит не так уж плохо.Чтобы еще больше уменьшить размер пакета в рабочей среде:

  • выполнить минимизацию пакета
  • удалить исходные карты
  • сжать пакет, используя gzip и Brotli, а затем разрешить клиентам выбирать сжатие
...