宣佈推出 `pkg:` 導入器
Natalie Weizenbaum 發佈於 2024 年 2 月 16 日
幾個月前,我們徵求了大家對於新標準導入器的意見回饋,這個導入器可以使用共享的 pkg:
方案從不同的套件管理器載入套件,同時也內建了一個支援 Node.js 模組解析演算法的 pkg:
導入器。今天,我很興奮地宣布,這個功能已經在 Dart Sass 1.71.0 中正式推出!
您不再需要手動將 node_modules
新增到 loadPaths
選項,也不用擔心巢狀套件是否能正常運作。您也不再需要在網址中加入 ~
並放棄所有可攜性。現在,您只需傳入 importers: [new NodePackageImporter()]
並撰寫 @use 'pkg:library'
,它就能立即如您所願地運作。
什麼是 pkg:
導入器?什麼是 pkg: 導入器? 永久連結
您可以將 pkg:
導入器想像成一個規範,任何人都可以透過撰寫遵循一些規則的自訂導入器來實作它。我們已經為 Node.js 模組演算法實作了一個,但您也可以實作一個從 RubyGems 或 PyPI 或 Composer 載入 Sass 檔案的導入器。這樣一來,無論 Sass 檔案從哪裡載入,都不需要更改其載入的網址。
pkg:
網址看起來像什麼?pkg: 網址看起來像什麼? 永久連結
最簡單的網址就是 pkg:library
。這會在您的套件管理器中找到 library
套件,並載入其主要的入口點檔案,無論其如何定義。您也可以撰寫 pkg:library/path/to/file
,在這種情況下,它會在套件的原始碼目錄中尋找 path/to/file
。如同任何 Sass 導入器,它會執行標準解析來處理檔案副檔名、partials 和 index 檔案。
如何發佈與 Node.js pkg:
導入器相容的 npm 套件?如何發佈與 Node.js pkg: 導入器相容的 npm 套件? 永久連結
Node.js pkg:
導入器支援所有現有的在 package.json
中宣告 Sass 檔案的慣例,因此它應該可以與現有的 Sass 套件直接相容。如果您正在撰寫新的套件,我們建議使用带有 "sass"
鍵的 "exports"
欄位 來定義預設要載入的樣式表。
{
"exports": {
"sass": "styles/index.scss"
}
}
Node.js pkg:
導入器支援完整的 "exports"
功能,因此您也可以為不同的子路徑指定不同的位置。
{
"exports": {
".": {
"sass": "styles/index.scss",
},
"./button.scss": {
"sass": "styles/button.scss",
},
"./accordion.scss": {
"sass": "styles/accordion.scss",
}
}
}
…甚至可以使用模式。
{
"exports": {
".": {
"sass": "styles/index.scss",
},
"./*.scss": {
"sass": "styles/*.scss",
},
}
}