20、webpack happypack多线程打包

作者 : 开心源码 本文共1849个字,预计阅读时间需要5分钟 发布时间: 2022-05-13 共312人阅读

webpack happypack 多线程打包,当工程比较大的时候可以使用多线程打包

操作步骤:

  • 1、安装happypack插件
 yarn add happypack
  • 2、配置
// 导入多线程打包let Happypack = require('happypack')//module.exports = {  plugins: [    // js公告多线程打包        new Happypack({            id: 'js',            use: [                {                    loader: 'babel-loader',                    options: {                        presets: [                            '@babel/preset-env',                            '@babel/preset-react'                        ]                    }                }            ]        }),        //css 多线程打包        new Happypack({            id: 'css',            use: [ MiniCssExtractPlugin.loader, 'css-loader', 'less-loader']        })  ],  module: {     // loader        rules: [            {                test: /\.css$/, //匹配css文件                use: 'Happypack/loader?id=css'            },            {                test: /\.less$/, //匹配less文件                use: 'Happypack/loader?id=css'            },            {                test: /\.js$/, //匹配js文件                use: 'Happypack/loader?id=js'            }        ]  }}

完整案例:

build/webpack.base.config.js

// 开发和生成模式共同的配置let path = require('path');// path.resolve 相对路径转成绝对路径// console.log(path.resolve('dist'));// 以当前目录// console.log(__dirname);// html-webpack-plugins 插件let HtmlWebpackPlugins = require('html-webpack-plugin');//let MiniCssExtractPlugin = require('mini-css-extract-plugin');//let webpack = require('webpack');// 导入多线程打包let Happypack = require('happypack')// webpack相关配置module.exports = {    // 入口,表示从哪里开始打包    entry: {        home: './src/index.js'    },     // 表示出口(输出后文件相关配置)    output: {           // 打包后的文件名 多入口根据入口名称生成        filename: 'build.js',          // 输出后的路径(必需是一个绝对路径)        path: path.resolve(__dirname, '../dist')    },    // 插件配置    plugins: [        new HtmlWebpackPlugins({            // 模板位置            template: 'index.html',            // 文件名            filename: 'index.html'        }),        // 抽离css为单独文件        new MiniCssExtractPlugin({            filename: 'main.css'        }),        // js公告多线程打包        new Happypack({            id: 'js',            use: [                {                    loader: 'babel-loader',                    options: {                        presets: [                            '@babel/preset-env',                            '@babel/preset-react'                        ]                    }                }            ]        }),        //css 多线程打包        new Happypack({            id: 'css',            use: [ MiniCssExtractPlugin.loader, 'css-loader', 'less-loader']        })    ],    //    resolve: {        // 解析三方库文件        //modules: [ path.resolve('node_modules') ],        // 扩展名        extensions: ['.js', '.css', '.json', '.vue'],        // 定义路径别名        alias: {            '@': path.resolve('src')        }    },    module: {        // loader        rules: [            {                test: /\.css$/, //匹配css文件                use: 'Happypack/loader?id=css'            },            {                test: /\.less$/, //匹配less文件                use: 'Happypack/loader?id=css'            },            {                test: /\.js$/, //匹配js文件                use: 'Happypack/loader?id=js'            }        ]     }}
说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 20、webpack happypack多线程打包

发表回复