1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        【滴滴】如何壓縮前端項(xiàng)目中 JS 的體積

        共 1100字,需瀏覽 3分鐘

         ·

        2023-10-17 00:54

        白沙國家公園,美國新墨西哥州
        (? Andrea Harrell/Tandem Stills + Motion)
        terser[2] 或者 uglify[3],及流行的使用 Rust 編寫的 swc 壓縮混淆化 JS。

        1. gzip 或者 brotli 壓縮,在網(wǎng)關(guān)處(nginx)開啟
        2. 使用 webpack-bundle-analyzer 分析打包體積,替換占用較大體積的庫,如 moment -> dayjs
        3. 使用支持 Tree-Shaking 的庫,對無引用的庫或函數(shù)進(jìn)行刪除,如 lodash -> lodash/es
        4. 對無法 Tree Shaking 的庫,進(jìn)行按需引入模塊,如使用 import Button from 'antd/lib/Button',此處可手寫 babel-plugin 自動完成,但不推薦
        5. 使用 babel (css 為 postcss) 時(shí)采用 browserlist,越先進(jìn)的瀏覽器所需要的 polyfill 越少,體積更小
        6. code spliting,路由懶加載,只加載當(dāng)前路由的包,按需加載其余的 chunk,首頁 JS 體積變小 (PS: 次條不減小總體積,但減小首頁體積)
        7. 使用 webpack 的 splitChunksPlugin,把運(yùn)行時(shí)、被引用多次的庫進(jìn)行分包,在分包時(shí)要注意避免某一個(gè)庫被多次引用多次打包。此時(shí)分為多個(gè) chunk,雖不能把總體積變小,但可提高加載性能 (PS: 此條不減小總體積,但可提升加載性能)

        Reference

        [1]

        Daily Question: https://q.shanyue.tech

        [2]

        terser: https://github.com/terser/terser

        [3]

        uglify: https://github.com/mishoo/UglifyJS

        瀏覽 379
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評論
        圖片
        表情
        推薦
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            1000部处女破处视频 | 久久爽中文字 | 中文字幕精品无 | 亚洲A∨无码无在线观看 | 国产白丝在线观看 | 中文无码激情 | 成人美女视频 | 娇妻玩4p被5个男人玩 | 69视频在线免费观看 | 蜜臀久久99精品久久久久宅男 |