免費轉換器

JavaScript 壓縮工具

在瀏覽器中即時壓縮 JavaScript 程式碼。刪除註解、折疊空白並縮小檔案大小。免費且私密。

將 JS 檔案拖放至此

支援 .js 檔案。或在上方貼上您的 JavaScript。

關於此工具

JavaScript 縮小透過刪除不必要的字元和(使用適當的縮小器)將局部變數重新命名為更短的名稱來減少原始程式碼的大小。第一類——空白和註釋刪除——簡單且無風險。第二個——變數重新命名——需要理解範圍規則,這也是像 Terser 和 esbuild 這樣的生產壓縮器最擅長的。

該工具專注於安全縮小:剝離註釋、折疊空白、刪除多餘的分號以及縮短明顯的模式。變數重命名是保守的-只觸及明確範圍內的局部變量,而不會影響外部引用的名稱。結果在功能上與來源相同。

對於生產級縮小,專用工具(Terser、esbuild、swc)可以理解完整的 ECMAScript 範圍模型並產生明顯較小的產出。當完整的建置設定不可用時,此工具可用於快速瀏覽器端縮小。

為什麼要縮小 JavaScript

JavaScript 套件通常是現代網頁上最大的單一資源。與未縮小的來源相比,縮小通常會減少 30-60% 的大小。與 gzip 或 Brotli 結合使用,減少量會有所縮小,但該組合仍然節省了可測量的位元組 — 特別是對於連接速度較慢的用戶而言。

更快的 JavaScript 也意味著更快的互動時間。較小的腳本下載速度更快,解析速度更快,執行速度也更快。對於 TTI 影響跳出率和 SEO 排名的網站,縮小是最便宜的方法之一。

使用方法

貼上 JavaScript,獲得較小的版本。

  1. 新增 JavaScript 輸入: 將原始程式碼貼到輸入區域或拖放 .js 檔案。縮小器接受現代 JavaScript (ES2015+),包括箭頭函數、模板文字、類別和模組。
  2. 選擇選項: 預設會去除註釋並折疊空格。局部變數重命名是保守的;如果需要最大壓縮,請啟用更積極的重命名。
  3. 縮小: 壓縮器解析原始程式碼,刪除空格和註釋,並發出緊湊的輸出。原始程式碼中的語法錯誤會產生清晰的錯誤訊息。
  4. 使用輸出: 替換生產中的腳本來源。為了實現全面優化,請與處理樹抖動和死代碼消除的捆綁器配對。

常見用例

技術細節

縮小器使用尊重 ECMAScript 語法的解析器對 JavaScript 進行標記。除了標有 /* 的許可證註解之外,註解(單行和多行)將被刪除!前綴。除非語法需要(標識符之間、關鍵字之後),否則空白會被折疊。

保守的變數重命名縮短了直接作用域中的局部變數。全域名稱、匯出名稱和匯入名稱不會被重新命名——這會破壞外部參考。對於深度重新命名,請使用 Terser 或 esbuild 並進行適當的模組感知分析。

邊緣情況:自動分號插入(ASI)意味著縮小器必須在某些上下文中保留換行符,以避免更改程式行為。模板文字、正規表示式文字和 JSX(如果輸入包含它)會被準確保留,因為它們的內容可能無法安全地壓縮。

最佳實踐

常見問題

縮小會改變我的程式碼的工作方式嗎?
不會。縮小會刪除空格和註釋,這不會影響執行。變數縮短(重整)重新命名局部變數但保留行為。全域變數和導出的名稱保持不變。
我應該減少開發還是生產?
僅在生產中使用精簡代碼。開發過程中,保留原有的可讀程式碼。大多數建置工具(Webpack、Vite、esbuild)都會在生產建置過程中自動處理縮小。
縮小和混淆有什麼差別?
縮小可以減少大小,同時在格式化後保持程式碼的功能可讀性。故意混淆使程式碼難以理解(字串編碼、控制流扁平化)。該工具側重於減小尺寸,而不是混淆。
我預計尺寸會減少多少?
通常在 gzip 之前為 30-60%。帶有長變數名稱的註解良好的程式碼可以看到最大的減少。結合 gzip 壓縮,JavaScript 檔案通常比原始來源檔案小 80-90%。
我的程式碼是否上傳到伺服器?
不會。壓縮器在您的瀏覽器中運作。
我的 JavaScript 會小多少?
通常減少 30–60%。具有長標識符的重變數程式碼壓縮得更多;大量表達式的程式碼壓縮較少。
我應該手動縮小嗎?
絕不。在原始程式碼中維護可讀的 JavaScript。將縮小作為建置步驟或部署的一部分運行。
它可以在 TypeScript 上運行嗎?
TypeScript 需要先使用 tsc 或 esbuild 將其編譯為 JavaScript。編譯後,產生的 JavaScript 可以縮小。