[Stylelint] tsxファイルの解析でCssSyntaxErrorが発生する場合の対処方法
1 min read
状況
stylelint ./components/**/*.tsx
stylelint
を tsx ファイルに対して実行すると下記のようなエラーが発生した。
/components/TheHeader.tsx: When linting something other than CSS, you should install an appropriate syntax, e.g. "@stylelint/postcss-css-in-js", and use the "customSyntax" option
components/Heading.tsx
1:10 ✖ Unknown word CssSyntaxError
環境
- stylelint:
14.0.1
原因
v14 で変更があったようだった。
Stylelint no longer includes the syntaxes that:
- parse CSS-like languages like SCSS, Sass, Less and SugarSS
- extract styles from HTML, Markdown and CSS-in-JS object & template literals
CSS ファイル以外のものを解析したい場合は別途シンタックスモジュールが必要になったようだ。
参考:
解決方法
@stylelint/postcss-css-in-jsをインストールする。
npm install -D @stylelint/postcss-css-in-js
次にstylelint.config.js
に下記のようなオプションを追加する。
// stylelint.config.js
module.exports = {
// ...略
overrides: [
{
files: ["**/*.{jsx,tsx}"],
customSyntax: "@stylelint/postcss-css-in-js",
},
],
};
jsx や tsx ファイルの場合のシンタックスは@stylelint/postcss-css-in-js
にするといった具合。
tsx ファイルに対してstylelint
がこれまで通り解析できるようになった。