2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

モノレポで開発時にESLintがうまく効かない時

Posted at

に、試すべきこと。

事象

プロジェクトにTailwind CSSと併せてESLintのプラグインであるeslint-plugin-tailwindcssを導入したが、独自クラスとして定義したカラーパレットのクラスを使うと警告が出てしまうという事象が発生。

frontend/tailwind.config.ts
const config: Conifg = {
  ...
  theme: {
    extend: {
      colors: {
        'my-white': '#ffffff',
        ...
      }, 
    },
  },
  ...
}
frontend/.eslintrc.json
{
  "extends": [
    ...
    "plugin:tailwindcss/recommended",
    ...
  ],
  ...
}

image.png

Classname 'bg-my-white' is not a Tailwind CSS class! eslint(tailwindcss/no-custom-classname)ということで、独自に定義したmy-whiteが読み込めていない様子。
画面で見ると色は正しく反映されているのでlint側の問題のはずだが、whitelistの追加やconfigファイルのパス指定などを試しても警告が消えない。

原因

モノレポ、つまりプロジェクトのroot直下にfrontend backendのようなディレクトリを切っており、かつrootディレクトリでVSCodeを開いた場合、eslintが正しく読み取れない場合がある。そんな時は対象のパス指定が必要。

.vscode/settings.json
{
  "eslint.workingDirectories": ["./frontend"]
}

今回のeslint-plugin-tailwindcssの場合は下記設定でもOK。

frontend/.eslintrc.json
{
  ...
  "settings": {
    "tailwindcss": {
      "config": "./frontend/tailwind.config.ts"
    }
  }
}

これで無事警告が消えました。
image.png

configでパス指定をする際、.eslintrc.jsontailwind.config.tsが同じ階層にあるので"config": "./tailwind.config.ts"と書きたくなってしまうが、rootからのパスを記述しないと読み込めないため注意が必要(これでハマった)。

参考

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?