DevToolPal
繁

JavaScript 與 CSS 壓縮

用 Terser 壓縮 JavaScript、用 CSSO 壓縮 CSS,縮小檔案大小,全部在你的瀏覽器中完成。

本機處理,不會上傳

選項

語言

輸入

0 字元 · 0 B

輸出

0 字元 · 0 B

功能簡介

壓縮(minify)會移除瀏覽器執行程式碼時不需要的一切:空白、換行、註解和冗長的名稱。檔案越小下載越快,能改善頁面載入時間和 Core Web Vitals,在行動網路上尤其明顯。

這個工具用 Terser 壓縮 JavaScript,它也是 webpack、Rollup 和 Vite 採用的壓縮器;並用 CSSO 壓縮 CSS,CSSO 還會重組樣式表:縮短顏色(#ffffff 變成 #fff)、移除多餘的單位和值(0px 0px 變成 0),並合併選擇器或宣告相同的規則。

使用方法

  1. 把程式碼貼到 輸入 框、把 .js 或 .css 檔案拖進去,或點 範例。
  2. 選擇 JavaScript 或 CSS。
  3. 對於 JavaScript,縮短變數名稱 會把區域變數和參數改名為單一字母。匯出的名稱和全域名稱絕不會被更動。
  4. 對於 CSS,合併重複規則 會把宣告相同的規則合併在一起。
  5. 複製或下載結果。每個框下方的大小計數器會顯示你省下了多少。

如果 JavaScript 有語法錯誤,錯誤訊息會標出行號和欄號,讓你直接跳過去。

範例

// Sum the price of every item
export function cartTotal(items, discountPercent = 0) {
  const subtotal = items.reduce(function (sum, item) {
    return sum + item.price * item.quantity
  }, 0)
  return subtotal * (1 - discountPercent / 100)
}

會變成

export function cartTotal(t,r=0){return t.reduce(function(t,r){return t+r.price*r.quantity},0)*(1-r/100)}

什麼時候使用

適合臨時的一次性需求:給 CDN 用的程式碼片段、HTML 電子郵件中的內嵌指令碼、書籤小程式(bookmarklet),或看看一個函式庫最小能壓到多小。在正式專案中,應該由打包工具在每次建置時自動壓縮,讓原始碼保持可讀。

常見問題

› 我的程式碼會被上傳到任何地方嗎?

不會。Terser 和 CSSO 在你的瀏覽器中執行,所以專有原始碼絕不會離開你的裝置。

› 壓縮會讓我的 JavaScript 壞掉嗎?

對於有效的程式碼,Terser 只會套用不改變行為的轉換。如果程式碼在執行時依賴函式或變數名稱(例如透過 Function.name),縮短名稱可能會造成影響;這時請關閉「縮短變數名稱」。

› 為什麼 CSS 的「合併重複規則」是選擇性的?

合併會在規則之間搬移宣告。這在幾乎所有樣式表中都是安全的,但如果你的 CSS 依賴相同權重規則的確切順序,關閉它可以保證維持原本的順序。

› 會保留哪些註解?

開啟「保留授權註解」時,以 /*! 開頭或包含 @license、@preserve 的註解會保留,這是大多數開源授權的要求。其他註解都會被移除。