問題の原因は、ESLintの「no-undef」ルールがアンダースコアの使用を未定義の変数として認識していることです。これは、アンダースコアがデフォルトではグローバルスコープで使用できないためです。
解決するためには、以下のいくつかの方法があります。
-
アンダースコアを定義する: アンダースコアを変数として定義することで、ESLintのエラーを解消することができます。以下は例です。
var _ = require('underscore');
この方法では、アンダースコアを使用するたびに上記の行を追加する必要があります。
-
グローバル変数として設定する: ESLintの設定ファイル(.eslintrcやpackage.jsonなど)に、アンダースコアをグローバル変数として設定することもできます。以下は例です。
{ "globals": { "_": true } }
この方法では、アンダースコアをグローバル変数として一度設定するだけで、複数のファイルで使用できるようになります。
-
ESLintのルールを無効化する: アンダースコアの使用に関するESLintの「no-undef」ルールを無効化することもできます。ただし、この方法は他の未定義の変数の使用を見逃す可能性があるため、注意が必要です。以下は無効化する方法の例です。
/* eslint-disable no-undef */ // アンダースコアを使用するコード /* eslint-enable no-undef */
この方法では、アンダースコアを使用するコードの前後に特定のコメントを追加する必要があります。