umi打包太大,進(jìn)行壓縮處理

umi打包的時(shí)候,太大進(jìn)行壓縮處理

關(guān)鍵插件和umi版本:

"umi": "^3.2.24",
 "compression-webpack-plugin": "^6.0.0",

在.umirc.ts文件添加

export default defineConfig({
  nodeModulesTransform: {
    type: 'none',
    exclude: [],
  },
  .....
  dynamicImport: {},
  chunks: ['vendors', 'umi'],
  chainWebpack: function (config, { webpack }) {
    config.merge({
      optimization: {
        splitChunks: {
          chunks: 'all',
          automaticNameDelimiter: '.',
          name: true,
          minSize: 30000,
          minChunks: 1,
          cacheGroups: {
            vendors: {
              name: 'vendors',
              chunks: 'all',
              test: /[\\/]node_modules[\\/]/,
              priority: -12,
            },
          },
        },
      },
    });
    if (process.env.NODE_ENV === 'production') {
      //gzip壓縮
      config.plugin('compression-webpack-plugin').use(CompressionPlugin, [
        {
          test: /\.js$|\.html$|\.css$/, //匹配文件名
          threshold: 10240, //對(duì)超過10k的數(shù)據(jù)壓縮
          deleteOriginalAssets: false, //不刪除源文件
        },
      ]);
    }
  },
  theme: {},
 .......
});

nginx配置支持請(qǐng)求壓縮內(nèi)容

在nginx配置文件內(nèi)添加

 # 開啟和關(guān)閉gzip模式
gzip on;

# gizp壓縮起點(diǎn),文件大于1k才進(jìn)行壓縮
gzip_min_length 1k;

# gzip 壓縮級(jí)別,1-9,數(shù)字越大壓縮的越好,也越占用CPU時(shí)間
gzip_comp_level 6;

# 進(jìn)行壓縮的文件類型。
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/xml text/javascript application/json;

# nginx對(duì)于靜態(tài)文件的處理模塊,開啟后會(huì)尋找以.gz結(jié)尾的文件,直接返回,不會(huì)占用cpu進(jìn)行壓縮
gzip_static on;

# 是否在http header中添加Vary: Accept-Encoding,建議開啟
gzip_vary on;

# 設(shè)置壓縮所需要的緩沖區(qū)大小,以4k為單位,如果文件為7k則申請(qǐng)2*4k的緩沖區(qū)
gzip_buffers 4 16k;

?著作權(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),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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