跳至主要內容

no-var-requires

不允許使用 require 陳述式,但可使用在匯入陳述式中。

延伸說明 "plugin:@typescript-eslint/recommended" in an ESLint 構形 啟用此規則。

換句話說,禁止使用諸如 var foo = require("foo") 等形式。應使用 ES6 樣式匯入或 import foo = require("foo") 匯入。

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

在遊樂場中嘗試此規則 ↗

範例

var foo = require('foo');
const foo = require('foo');
let foo = require('foo');
在遊樂場中開啟

選項

此規則接受以下選項

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 模組,也可以使用它來允許匯入任何 JSON,或在匯入陳述無法運作時用於其他情況。

使用 `{allow: ['/package\\.json$']}

const foo = require('../data.json');
在遊樂場中開啟

何時不使用它

如果你的專案經常使用較舊的 CommonJS `require`,則此規則可能不適用於你。如果專案中只有部分使用 `require`,你可以考慮針對這些特定情況使用 ESLint 停用註解,而不是完全停用此規則。

資源