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"
}
};
在遊樂場中嘗試此規則 ↗
範例
- ❌ 錯誤
- ✅ 正確
選項
此規則接受以下選項
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$']}
何時不使用它
如果你的專案經常使用較舊的 CommonJS `require`,則此規則可能不適用於你。如果專案中只有部分使用 `require`,你可以考慮針對這些特定情況使用 ESLint 停用註解,而不是完全停用此規則。