zoukankan      html  css  js  c++  java
  • 多进程打包

    需要用到 thread-loader , 

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

  • 相关阅读:
    eth私有节点搭建
    angularjs 文件类型格式校验
    Windows Server 2019, 2016 or 2012 安装telnet
    Oracle导致Redo日志暴增的SQL语句排查
    log4j waf 绕过技巧
    jtemplate使用笔记
    NPOI2.0
    关于java同一个类互相调用,spring事务失效问题
    java 将redis的数据批量取出来的时候遇到json格式转换异常
    超级好用的文档转换工具
  • 原文地址:https://www.cnblogs.com/shanlu0000/p/13056231.html
Copyright © 2011-2022 走看看