【JavaScript】ESLintの今の設定を確認するお便利オプション「–print-config」

困った時対応ログ

JavaScript系のコードを書く時に、静的解析をしつつ、自動整形までしてくれるESLintは大変便利で、大量にある設定を個別で設定せずに済むように、推奨設定をextends して使うのが基本的な使い方になっていると思います。

推奨設定が気に食わないな〜となった時には個別でrulesを設定する事が可能ですが、そもそも現在の設定はどうなってるんだっけ? となった時に、確認するオプションコマンド「–print-config」があります。

Command Line Interface
A pluggable and configurable linter tool for identifying and reporting on patterns in JavaScript. Maintain your code quality with ease.

複数の設定を extends している時に、個別でGitHubを見に行くのは無理ゲーなので、使うと便利です。

使い方

 node ./node_modules/eslint/bin/eslint.js  --print-config ファイルpath

です。ファイルpathは設定ファイルではなくて、ESLintを効かせたい(実際には効かない)ファイルを指定します。

※ESLintはfileの種類によって内容を変更する事が可能です

Configuring ESLint
A pluggable and configurable linter tool for identifying and reporting on patterns in JavaScript. Maintain your code quality with ease.

実行例はこうなります。

$ node ./node_modules/eslint/bin/eslint.js  --print-config index.js
{
  "env": {
    "browser": true,
    "node": true,
    "es6": true,
    "jest/globals": true
  },
  "globals": {
    "document": "readonly",
    "navigator": "readonly",
    "window": "readonly"
  },
  "parser": "/app/node_modules/vue-eslint-parser/index.js",
  "parserOptions": {
    "ecmaVersion": 2018,
    "sourceType": "module",
    "ecmaFeatures": {
      "jsx": true
    },
    "parser": "@typescript-eslint/parser"
  },
  "plugins": [
    "standard",
    "promise",
    "node",
    "import",
    "vue",
    "unicorn",
    "jest",
    "@typescript-eslint",
    "nuxt",
    "prettier"
  ],
  "rules": {
    "nuxt/no-timing-in-fetch-data": [
      "error"
    ],
    "nuxt/no-env-in-context": [
      "error"
    ],
    "nuxt/no-env-in-hooks": [
      "error"
    ],
    "nuxt/no-globals-in-created": [
      "error"
    ],
    "nuxt/no-this-in-fetch-data": [
      "error"
    ],
    "nuxt/no-cjs-in-config": [
      "error"
    ],
    "prettier/prettier": [
      "error"
    ],
// 長いので省略

json形式で吐き出されるので、jq なり、less なりの好きなコマンドで内容を確認すると良いです。

こんな感じ。

$ node ./node_modules/eslint/bin/eslint.js  --print-config index.js | less

あとはよしなに。

コメント

タイトルとURLをコピーしました