zoukankan      html  css  js  c++  java
  • webpack性能优化-多进程打包

       cnpm i thread-loader –D

        开启多进程打包,进程启动大概为600s,进程通信也有开销(适合大项目使用)

    const { resolve } = require('path')
    const HtmlWebpackPlugin = require('html-webpack-plugin')
     
    process.env.NODE_ENV = 'production'
     
    module.exports = {
        entry: './src/js/index.js',
        output: {
            filename: 'bundle.[contenthash:10].js',
            path: resolve(__dirname, 'build')
        },
        module: {
            rules: [
                {
                    test: /.js$/,
                    exclude: /node_modules/,
                    enforce: 'pre', //优先执行,正常的,一个文件只能被一个loader处理,当一个文件要被多个loader处理,一定要指定loader执行的先后顺序,先执行eslint再执行babel
                    loader: 'eslint-loader',
                    options: {
                        fix: true
                    }
                },
                //以下loader中只会匹配一个,注意不能有两个loader处理同一种类型文件,所以eslint-loader放在oneOf匹配之前执行
                {
                    oneOf: [
                        {
                            test: /.js$/,
                            exclude: /node_modules/,
                            use:[
                                {
                                    //开启多进程打包
                                    loader:'thread-loader',
                                    options:{
                                        workers:2  //进程2个
                                    }
                                },
                                {
                                    loader: 'babel-loader',
                                    options: {
                                        presets: [
                                            ['@babel/preset-env', {
                                                useBuiltIns: 'usage',
                                                corejs: { version: 3 },
                                                targets: {
                                                    chrome: '60',
                                                    firefox: '50'
                                                }
                                            }]
                                        ],
                                        cacheDirectory: true //开启babel缓存,第二次构建时,会读取之前的缓存
                                    }
                                }
                            ],
                        },
                    ]
                }
            ]
        },
        plugins: [
            new HtmlWebpackPlugin({
                template: './src/index.html',
                minify: {
                    collapseWhitespace: true,
                    removeComments: true
                }
            })
        ],
        mode: 'production'
    }

    进程启动大概为 600ms,进程通信也有开销,当只有工作消耗时间比较长时,才需要多进程打包





  • 相关阅读:
    数字类型内置方法
    流程控制之while循环
    流程控制之if判断
    基本运算符
    格式化输出的三种方式
    Python与用户交互
    解压缩
    布尔值(bool)
    django基础 -- 8.cookie 和 session
    为博客园文章添加目录的方法
  • 原文地址:https://www.cnblogs.com/cl1998/p/13069088.html
Copyright © 2011-2022 走看看