【ESLint】Node.js の 環境変数 でエラー ‘require’ is not defined.eslint[no-undef] が出る

  • ESLint

node.js で使用されている変数、require__direname などが ESLint によって「未定義の変数を使用している」と認識されてしまうエラーが出ていました。

'module' is not defined.eslintno-undef
'require' is not defined.eslintno-undef
'__dirname' is not defined.eslintno-undef

Node.js の環境変数設定をenvに追加する

.eslintrc.js(拡張子は環境によって異なります)で、使用する環境変数を定義することができます(詳しくは公式リファレンス)。

.eslintrc.js

module.exports = {
  ...
  env: {
    browser: true,
    es2021: true,
    node: true, // node の環境変数を追加
  },
  ...
};

この設定は全ファイルに適用されます。これで Node.js の環境変数についての ESLint エラーは出なくなります。

特定のファイルのみ、環境変数設定を適用する場合

Node.js で動かすようなファイルが少ないなら、ファイルの先頭に指定する方式で同じことができます(詳しくは公式リファレンス)。

/*eslint-env node*/

... Node.js のコード ...

ウェブ開発の場合、webpack などの設定ファイルだけが Node.js で動かすファイル、他はブラウザで動かすファイル…ということもあると思います。その時は、指定したファイルにだけ設定を追加するほうが厳密かもしれません。

環境変数は他にも jQuery だったり色々あるので細かくチェックしてみると良さそうです。