从零开始webpack4.x(十一)noParse、IgnorePlugin、happypack

noParse

--不解析模块中的依赖关系 提高打包效率

webpack.config.js

module: {
        noParse: /jquery/, // 不解析模块中的依赖关系 提高打包效率
        rules: [
            { 
                test: /\.js$/, 
                use: {
                    loader: babel-loader,
                    options: {
                        presets: [
                            @babel/preset-env,
                            @babel/preset-react
                        ]
                    }
                }
            }
        ]
}

 

IgnorePlugin

--忽略第三方包指定目录,让这些指定目录不要被打包进去

webpack.config.js

plugins: [
    new webpack.IgnorePlugin(/\.\/locale/, /moment/),  // 在 moment 引入.locale 语言包时 忽略  减小打包体积      
]

index.js

// import moment from ‘moment‘;

// // 手动引用中文包
// import  "moment/locale/zh-cn";
// // 设置语言包
// moment.locale(‘zh-cn‘);   // 中文

// let date = moment().endOf(‘day‘).fromNow(); 
// console.log(date)

 

happypack

--多线程打包

    无需多线程时,尽量不要使用happypack 会消耗打包性能

let path = require(path);
let HtmlWebpackPlugin = require(html-webpack-plugin);
let webpack = require(webpack);
let Happypack = require(happypack);
// 多线程打包  happypack
module.exports = {
    mode: production,
    entry: {
        home: ./src/home.js
    },
    output: {
        filename: home.js,
        path: path.resolve(__dirname, dist)
    },
    plugins: [
        new Happypack({ 
            id: js,
            use: [
                {
                    loader: babel-loader,
                    options: {
                        presets: [
                            @babel/preset-env,
                            @babel/preset-react
                        ]
                    }
                }
            ]
        }),
        new HtmlWebpackPlugin({
            template: ./index.html,
            filename: index.html
        })
    ],
    module: {
        rules: [
            { 
                test: /\.js$/, 
                // exclude: /node_modules/,     // 优化打包文件
                // include:path.resolve(‘src‘), // 优化打包文件
                use: Happypack/loader?id=js  // 多线程 id匹配js  css也可以多线程打包
            }
        ]
    }

}

 

从零开始webpack4.x(十一)noParse、IgnorePlugin、happypack

上一篇:Android简单互动登录界面


下一篇:docker_常用命令模板