webpack4 極速打包

現(xiàn)在很流行使用webpack打包,好處不多說(shuō)。用了就知道。但是其實(shí)配置webpack是挺麻煩得。但是隨著wepback4得升級(jí),簡(jiǎn)化了流程。變得簡(jiǎn)單了。我這里只是講解怎么優(yōu)化webpack打包速度。不講解基礎(chǔ)配置。

注意: 我這個(gè)是多頁(yè)面打包。得方案

優(yōu)化點(diǎn)1 (optimization.splitChunks)

   stats: {
        // Add asset Information
        assets: false,
        // Add children information
        children: false,

        // Add chunk information (setting this to `false` allows for a less verbose output)
        chunks: false,
    },
    optimization: {
        splitChunks: {
            cacheGroups: {
                nocommon:{
                    test: (module, chunk) => {
                    },
                     chunks: 'initial',
                     name: 'nocommon',
                     filename: 'nocommon.[hash:8].js',
                     priority: 10, // 優(yōu)先
                     enforce: true
                },
                common: { // 將第三方模塊提取出來(lái)
                    // test: /(node_modules)/,

                    // test: /(node_modules)/,
                    // test: /node_modules\/(?!front-common)/,
                    test: (module, chunk) => {
                        if (module.resource) {
                        }
                    },
                    chunks: 'initial',
                    name: 'common',
                    filename: 'common.[hash:8].js',
                    priority: 10, // 優(yōu)先
                    enforce: true
                }
            }
        }
    },

stats 簡(jiǎn)化控制臺(tái)輸出內(nèi)容,好日志。
splitChunks webpack4 自帶內(nèi)容。作用主要是把,公用得文件給抽取出來(lái)。防止多次打包,導(dǎo)致提及變慢??梢园凑兆约旱孟敕ù虬?。

優(yōu)化點(diǎn)2

ParallelUglifyPlugin

    new ParallelUglifyPlugin({
                cacheDir: '.cache/',
                // Optional regex, or array of regex to match file against. Only matching files get minified.
                // Defaults to /.js$/, any f÷

                uglifyES: {
                    // These pass straight through to uglify-es.
                    // Cannot be used with uglifyJS.
                    // uglify-es is a version of uglify that understands newer es6 syntax. You should use this option if the
                    // files that you're minifying do not need to run in older browsers/versions of node.
                }
            }),

這個(gè)主要是開(kāi)多核壓縮,可以使用多進(jìn)程。
注意:cacheDir: '.cache/',可以生成一個(gè)緩存文件夾。

優(yōu)化點(diǎn)3

 new HappyPack({
            id: 'happy-babel-js',
            loaders: [{
                loader: 'babel-loader'
                // options: {
                //     presets: ['@babel/preset-env'], // presets設(shè)置的就是當(dāng)前js的版本
                // }
            }],
            threadPool: happyThreadPool
        })
  {
                test: /\.(js)$/,
                // exclude: /(node_modules)/,
                // include: [/(src)/, /(node_modules\/front-common)/],
                include: [/(src)/, /(node_modules)/],
                use: 'happypack/loader?id=happy-babel-js', // 增加新的HappyPack構(gòu)建loader
 },

HappyPack 也是開(kāi)啟多核

這個(gè)只是大概列舉出來(lái)那些東西,提供一個(gè)git 倉(cāng)庫(kù)。
webpack4極速

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 寫在開(kāi)頭 先說(shuō)說(shuō)為什么要寫這篇文章, 最初的原因是組里的小朋友們看了webpack文檔后, 表情都是這樣的: (摘...
    Lefter閱讀 5,452評(píng)論 4 31
  • 很多人都說(shuō)webpack復(fù)雜,難以理解,很大一部分原因是webpack是基于配置的,可配置項(xiàng)很多,并且每個(gè)參數(shù)傳入...
    little_short閱讀 6,700評(píng)論 1 4
  • # Python 資源大全中文版 我想很多程序員應(yīng)該記得 GitHub 上有一個(gè) Awesome - XXX 系列...
    小邁克閱讀 3,129評(píng)論 1 3
  • 一、入坑初探 1. 設(shè)置項(xiàng)目為私有 我們只需要在package.json文件中配置,因?yàn)槭撬接许?xiàng)目不需要向外部暴露...
    zxhnext閱讀 2,159評(píng)論 0 15
  • 孩子們終于都睡著了。兒子臀部的膿包已經(jīng)好幾個(gè)月了 到今天反而嚴(yán)重了,他不愛(ài)吃中藥,平時(shí)吃飯又喜歡辛辣和甜食,...
    漫漫來(lái)lily閱讀 156評(píng)論 2 7

友情鏈接更多精彩內(nèi)容