Closed2

SvelteKit+Windi CSSで「_a.classes.replaceAll is not a function」が出る

WUGKWUGK

SvelteKitで作成したアプリケーションにWindi CSSを導入しようと思い、Windi CSSのInstallationに従って進めていると、_a.classes.replaceAll is not a functionというエラーが出ました。

軽く調べたところ、どうやらsvelte-windicss-preprocessのv4.2系でいくつかのリグレッションが発生している模様。
v4.2.5を使用していましたが、v4.1.7まで戻すことでとりあえず動作しました。

https://github.com/windicss/svelte-windicss-preprocess/releases

WUGKWUGK

↓のissueで既に報告されていました。
https://github.com/windicss/svelte-windicss-preprocess/issues/400
どうやらString.prototype.replaceAllメソッドが対応していないnodeのバージョンを使用していると起こるようです。
このissueで報告されているのは「vscodeに怒られる」という内容ですが、僕の場合は開発環境のnodeも古かった(14系を使用していた)ので、使用するnodeを16系に上げることで、svelte-windicss-preprocessのv4.2.5を使用してもエラーが出ないようになりました。
vscodeにSvelteの拡張機能を入れている方は、issueの通りLanguage-server: Runtimeにnodeの16系を指定してやる必要があります。
僕はどちらも最新安定版のv16.13.1を使用しました。

このスクラップは2022/01/02にクローズされました