webpack優(yōu)化策略篇

webpack優(yōu)化策略

量化工具:

    speed-measure-webpack-plugin 測(cè)量各個(gè)插件和loader所花費(fèi)的時(shí)間耐床。
    webpack-boundle-analyzer 分析打包后的文件大小

共性優(yōu)化策略:

    1.減小文件搜索范圍
         resolve.modules :配置模塊庫(即 node_modules)所在的位置
         loader配置include\exclude
         module.noParse 不需要解析某些模塊的依賴(這些模塊并沒有依
       賴,或者并根本就沒有模塊化)jquery \ lodash \ moment
    2.happyPack 加速代碼構(gòu)建 或者 thread-loader
      利用cpu多核恶座,采用多個(gè)子進(jìn)程去解析和遍歷js\css.完成后再發(fā)到主進(jìn)程
    3.優(yōu)化babel-loader 
        cacheDirectory 為true
        引入cache-loader 在性能開銷較大的loader之前添加,存在磁盤中
    4.不需要打包編譯的插件庫換成全局<script>標(biāo)簽引入的方式 
        例如: react / react-dom / jquery 等
        然后在webpack配置里使用 expose-loader  
                            或 externals 
                            或 ProvidePlugin  
        提供給模塊內(nèi)部使用相應(yīng)的變量
    5.合理抽離公共代碼
        CommonsChunkPlugin  / webpack4的 optimization.splitChunks
    6.代碼層面
        沒有使用到的依賴不要引入.
        按模塊化的方式引入其中一部分  
            import debounce from 'lodash/debounce';
    7.采用異步加載,使用代碼切割 import()  / reuqire.ensure 
    8.IgnorePlugin 忽略第三方包指定目錄
        例如:忽略moment下的.locale包臣咖,然后在使用的時(shí)候指定具體與語言
        new  webpack.IgnorePlugin(/^\.\/locale$/,/moment$/)
        import 'moment/locale/zh-cn'

區(qū)分環(huán)境,分開配置

  開發(fā)環(huán)境:
      1.免刷新:
          --hot 熱更新熱替換漱牵,不丟失狀態(tài)
      2.提高構(gòu)建速度:                
          DllPlugin  /  DllReferencePlugin 把第三方庫代碼分離開(對(duì)于依賴的第三方庫打包成動(dòng)態(tài)鏈接庫)                
          拷貝靜態(tài)文件 copy-webpack-plugin
      3.不做無意義的操作:
          比如:開發(fā)環(huán)境不需要 代碼壓縮夺蛇、目錄內(nèi)容清理、計(jì)算文件hash酣胀、提取CSS文件   
      4.選擇合適的devtool .

  生產(chǎn)環(huán)境:
      多線程壓縮文件 ParallelUglifyPlugin  / TerserPlugin:
          【webpack自帶的UglifyJS是單線程壓縮輸出】

如何使用tree-shaking刁赦?

  1).確保代碼是es6格式,即 export,import

   2).package.json中闻镶,設(shè)置sideEffects

   3).確保tree-shaking的函數(shù)沒有副作用

    4).babelrc中設(shè)置presets [["env", { "modules": false }]] 禁止轉(zhuǎn)換模塊甚脉,交由webpack進(jìn)行模塊化處理

    5).結(jié)合uglifyjs-webpack-plugin
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市铆农,隨后出現(xiàn)的幾起案子宦焦,更是在濱河造成了極大的恐慌,老刑警劉巖顿涣,帶你破解...
    沈念sama閱讀 210,914評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件波闹,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡涛碑,警方通過查閱死者的電腦和手機(jī)精堕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評(píng)論 2 383
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蒲障,“玉大人歹篓,你說我怎么就攤上這事∪嘌郑” “怎么了庄撮?”我有些...
    開封第一講書人閱讀 156,531評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)毙籽。 經(jīng)常有香客問我洞斯,道長(zhǎng),這世上最難降的妖魔是什么坑赡? 我笑而不...
    開封第一講書人閱讀 56,309評(píng)論 1 282
  • 正文 為了忘掉前任烙如,我火速辦了婚禮,結(jié)果婚禮上毅否,老公的妹妹穿的比我還像新娘亚铁。我一直安慰自己,他們只是感情好螟加,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評(píng)論 5 384
  • 文/花漫 我一把揭開白布徘溢。 她就那樣靜靜地躺著吞琐,像睡著了一般。 火紅的嫁衣襯著肌膚如雪然爆。 梳的紋絲不亂的頭發(fā)上顽分,一...
    開封第一講書人閱讀 49,730評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音施蜜,去河邊找鬼卒蘸。 笑死,一個(gè)胖子當(dāng)著我的面吹牛翻默,可吹牛的內(nèi)容都是我干的缸沃。 我是一名探鬼主播,決...
    沈念sama閱讀 38,882評(píng)論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼修械,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼趾牧!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起肯污,我...
    開封第一講書人閱讀 37,643評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤翘单,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后蹦渣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體哄芜,經(jīng)...
    沈念sama閱讀 44,095評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評(píng)論 2 325
  • 正文 我和宋清朗相戀三年柬唯,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了认臊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,566評(píng)論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡锄奢,死狀恐怖失晴,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情拘央,我是刑警寧澤涂屁,帶...
    沈念sama閱讀 34,253評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站灰伟,受9級(jí)特大地震影響拆又,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜袱箱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評(píng)論 3 312
  • 文/蒙蒙 一遏乔、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧发笔,春花似錦、人聲如沸凉翻。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至前计,卻和暖如春胞谭,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背男杈。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評(píng)論 1 264
  • 我被黑心中介騙來泰國打工丈屹, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人伶棒。 一個(gè)月前我還...
    沈念sama閱讀 46,248評(píng)論 2 360
  • 正文 我出身青樓旺垒,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親肤无。 傳聞我的和親對(duì)象是個(gè)殘疾皇子先蒋,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評(píng)論 2 348