.less 與 .module.less 檔案。
什麼情況下適合使用 Less
- 你正在遷移既有以 Less 為主的 web 程式碼庫。
- 你想以低遷移成本取得變數與巢狀寫法。
- 你需要模組化作用域樣式,又要維持 Less 的慣例。
範本範例
new-less

在既有擴充功能中使用
依下列步驟把 Less 加入既有擴充功能。安裝
安裝所需相依套件:在 HTML 檔中的使用範例
在擴充功能頁面(popup、options、new tab)中,從 script 入口匯入 Less:在 content_script 檔中
在瀏覽器擴充功能中使用 Less modules
和 CSS modules 一樣,Less modules 也能讓 class 名稱限定在區域作用域中。這在擴充功能中尤其重要,因為 content script 會在宿主頁面的 CSS 範圍內執行,預設的局部作用域可避免全域樣式衝突。content-less-modules

在既有擴充功能中使用 Less modules
若要啟用 Less modules,請把.less 檔改名為包含 .module.less。這會自動為 class 名稱套用區域作用域。
使用範例
把 Less 檔案改名後,可以在 script 中匯入:React/Preact 使用範例
要在 React 或 Preact 中使用 Less modules,匯入你的 Less module 並像一般元件一樣套用樣式:Vue 使用範例
在 Vue 中,建議在 SFC 中使用lang="less" 與 module 樣式:
Svelte 使用範例
在 Svelte 中,匯入 Less module 對應後套用 class:行為注意事項
- 在擴充功能頁面情境下,
.module.less會如預期匯出 class 對應。 - 在 content script 中,Extension.js 會把樣式當成 CSS 資源輸出,並以樣式表的方式注入頁面。
- 若沒有安裝
less套件,Extension.js 會提出警告,並把原始的 Less 原始碼直接複製進輸出的 CSS,因此在你自行安裝它之前,這些介面會以無樣式的狀態呈現。
關於 less 的安裝後警告
在某些套件管理器下,安裝一個使用 Less 的專案時,可能會出現「less 的建置指令稿未被執行」的通知
(pnpm 會印出 Ignored build scripts: less,並請你核准它們)。這是預期之中的行為,可以安全忽略。
Extension.js 透過自己的打包管線編譯 Less,因此並不依賴 Less 那個選用的安裝後步驟(它只是在 Less 自己的
儲存庫裡設定 Playwright,對使用者而言是空操作)。無論是哪一種情況,你的 .less 與 .module.less 檔案
的建置與熱重載都完全相同。
由樣板產生的專案不會帶有 pnpm.ignoredBuiltDependencies 鍵,所以用 pnpm 安裝 Less 樣板時,會像其他
專案一樣顯示這則通知。npm 與 yarn 預設會執行該指令稿,什麼也不會印出。
如果你遇到這則通知,有兩種等效的方式可以讓它安靜下來:
- 略過它(建議):在你的
package.json加上pnpm.ignoredBuiltDependencies: ["less"]。 這等於確認了這個指令稿,但不去執行這個空操作。 - 執行它:執行
pnpm approve-builds並選擇less,或加上pnpm.onlyBuiltDependencies: ["less"]。無害,只是沒有必要。
下一步
- 進一步了解 CSS modules。
- 在擴充功能中設定 PostCSS。

