本文へスキップ

no-var-requires

インポート文以外での`require`文を禁止します。

拡張 "plugin:@typescript-eslint/recommended" ESLint設定 で有効にすると、このルールが有効になります。

言い換えれば、`var foo = require("foo")`のような形式の使用は禁止されます。代わりにES6スタイルのインポートまたは`import foo = require("foo")`インポートを使用してください。

.eslintrc.cjs
module.exports = {
"rules": {
"@typescript-eslint/no-var-requires": "error"
}
};

このルールをPlaygroundでお試しください ↗

var foo = require('foo');
const foo = require('foo');
let foo = require('foo');
Playgroundで開く

オプション

このルールは次のオプションを受け入れます

type Options = [
{
/** Patterns of import paths to allow requiring from. */
allow?: string[];
},
];

const defaultOptions: Options = [{ allow: [] }];

allow

文字列の配列です。これらの文字列は`u`フラグ付きの正規表現にコンパイルされ、インポートされたパスに対してテストするために使用されます。一般的なユースケースは`package.json`のインポートを許可することです。これは`package.json`が一般的にTSルートディレクトリの外部に存在するため、静的にインポートするとルートディレクトリの競合が発生する可能性があるためです、特に`resolveJsonModule`を有効にしている場合。また、環境がJSONモジュールをサポートしていない場合、または`import`文が機能しないその他のケースにも使用できます。

`{allow: ['/package\\.json$']}`の場合

const foo = require('../data.json');
Playgroundで開く

使用しない場合

プロジェクトで古いCommonJSの`require`を頻繁に使用している場合、このルールは適用できない可能性があります。プロジェクトの一部のみで`require`を使用している場合は、このルールを完全に無効にする代わりに、ESLintの無効化コメントを特定の状況で使用することを検討してください。

リソース