Squoosh v2 隆重登場

新增轉碼器支援、新版設計和 CLI!

Mariko Kosaka

Squoosh 是一款圖片壓縮應用程式,於 2018 年 Chrome 開發人員高峰會首次推出。這個 API 能讓使用者輕鬆測試不同圖片轉碼器 並展現新世代網路的功用

今天,我們要為應用程式發布重大更新,除了支援更多轉碼器,還推出新版設計,並在指令列中透過名為 Squoosh CLI 的全新方式使用 Squoosh。

新的轉碼器支援

除了瀏覽器原生支援的轉碼器外,我們現在也支援 OxiPNG、MozJPEG、WebP 和 AVIF。使用 WebAssembly 可以再次支援新的轉碼器。只要以 WebAssembly 模組的形式編譯轉碼器編碼器和解碼器,即使所慣用的瀏覽器不支援,使用者仍可存取並試用較新的轉碼器。

啟動指令列 Squoosh!

自 2018 年首次推出以來,使用者經常要求在沒有使用者介面的情況下與 Squoosh 互動。由於我們的應用程式是在指令列式轉碼器工具上的使用者介面,因此我們覺得這個路徑稍有衝突。不過,我們也瞭解想要與整個轉碼器套件互動 而非使用多種工具Squoosh CLI 就是這樣。

如要安裝 Squoosh CLI 測試版,您可以執行 npm i @squoosh/cli 或直接使用 npx @squoosh/cli [parameters] 執行。

Squoosh CLI 是以 Node 編寫,並採用 PWA 中完全相同的 WebAssembly 模組。透過大量使用的 worker,會平行對所有圖片進行解碼、處理和編碼。 我們也會使用 Rollup 將所有內容組合成一個 JavaScript 檔案,確保透過 npx 安裝的過程快速順暢。CLI 還提供自動壓縮功能,會在不降低視覺保真度的情況下,盡可能降低圖片的品質 (使用 Butteraugli 指標)。

您可以使用 Squoosh CLI 將網頁應用程式中的圖片壓縮為多種格式,並使用 <picture> 元素,讓瀏覽器選擇最佳版本。我們也計劃建構 Webpack、Rollup 和其他建構工具的外掛程式,將圖片壓縮功能納入建構程序的一部分。

從 Webpack 到 Rollup 的建構程序變更

今年,Squoosh 的團隊投入了大量時間研究工具報表的建構工具,並決定將建構程序從 Webpack 切換為 Rollup。

這項專案最初是開發 Webpack,因為我們希望可以團隊試用看看,而且在 2018 年時,Webpack 是唯一能夠以理想方式設定專案的唯一工具。我們發現隨著時間推移,我們發現 Rollup 這個簡單的外掛程式系統與 ESM 相當簡單,因此自然成為這項專案的最佳選擇。

更新版使用者介面設計

此外,我們還更新了採用 blobs 做為視覺元素的應用程式使用者介面設計。就像我們如何處理 程式碼中的資料Squoosh 會以 blob 的形式傳遞圖片資料,因此在設計中加入一些 blob,是自然的?

我們也改善了色彩的使用方式,因此該顏色不只是強調色,更是用來區分及加深選項在各圖片中的圖片。總而言之,首頁畫面更加生動 工具本身也更加簡潔

接下來呢?

我們打算繼續努力經營 Squoosh。隨著新的圖片格式推出,我們希望使用者可在一個空間自行操作轉碼器,完全不必費力。我們也希望擴大 Squoosh CLI 的使用範圍,並將更多功能整合至網頁應用程式的建構程序中。

Squoosh 一直都是開放原始碼,但我們從未致力拓展社群。我們計劃在 2021 年擴大貢獻者群,並制定更完善的新手上路程序。

你對 Squoosh 有任何想法嗎?請透過 Issue Tracker 告知我們。該團隊即將延長冬日假期,但我們承諾會在新年 再次與您聯絡。