前端限制打包文件數量

前言:

之前有過這樣的項目經歷:我們寫的程序是前端打包給后端,后端再打包成jar包上傳到甲方的云市場,使用就在云市場里點擊應用打開。
當時甲方云市場做了一次升級,但是沒有給我們這邊說,直到后面整個系統不能用了,然后給我們反饋了:“你們系統進入頁面的時候請求了太多靜態資源,導致我們系統直接認定是網絡攻擊,直接掛掉了”。然后我就去看了一下,前端項目的打包文件,其中js文件和css文件最多,為了性能,對超過10kb的文件還進行了壓縮,前端靜態資源差不多就在五百個左右。

一般來說考慮到加載文件過大,會打包成多個js或css文件來加載,按甲方的意思就不需要考慮到文件加載問題了,先把靜態資源文件過多問題解決了。

如果是Webpack搭建的項目,直接看webpack官網,LimitChunkCountPlugin插件的maxChunks、minChunkSize這兩個配置。官方對于這個模塊的解釋是:在編寫代碼時,您可能已經添加了許多代碼拆分點來按需加載內容。編譯后您可能會注意到某些塊太小會產生更大的 HTTP 開銷。LimitChunkCountPlugin可以通過合并它們來對你的塊進行后處理


我使用的vue-cli3搭建的項目,在vue.config.js寫配置,vue-cli是支持直接使用webpack。目前vue-cli現已處于維護模式,現在官方推薦使用來Vite創建項目。

  const webpack = require('webpack')
  chainWebpack: (config) => {
    config.plugin('chunkPlugin').use(webpack.optimize.LimitChunkCountPlugin, [{
      maxChunks: 5, // 必須大于或等于 1,此處設置文件數量
      minChunkSize: 100 // webpack官網意思是合并小于設置數量大小文件,如果產生的文件大小小于設置值,那么直接和其他的文件合并,目前該配置沒有產生效果
    }])
  },

Vue.config.js里這么配置了之后,再打包的效果如下,再重新部署之后,服務沒問題了,問題解決。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。