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,进程通信也有开销,当只有工作消耗时间比较长时,才需要多进程打包





  • 相关阅读:
    对函数的推广
    自然语言也支持泛型
    用委托实现对List的常用方法提取
    C#中的特性(Attributes)(翻译)(转)
    用JQUERY增删元素
    表格折叠展开
    下一代编程语言可能具有的特点
    一种多继承方案
    几年前毕业设计做的CAD二次开发
    数据结构 003.1.1 栈的基本概念
  • 原文地址:https://www.cnblogs.com/cl1998/p/13069088.html
Copyright © 2011-2022 走看看