从零开始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也可以多线程打包
            }
        ]
    }

}

 

posted @ 2020-04-12 17:01  前端小厨-美食博主  阅读(1003)  评论(0编辑  收藏  举报