[英]eslint working with the .eslintrc.js and not working with .eslintrc.json
[英]I added all the recommended rules from the eslint docs to my .eslintrc.js file and they all throw 'Definition for rule was not found'
這是我的.eslintrc.js
文件的內容:
module.exports = {
parser: '@typescript-eslint/parser',
parserOptions: {
project: 'tsconfig.json',
sourceType: 'module'
},
plugins: ['@typescript-eslint/eslint-plugin'],
extends: [
'eslint:recommended',
'plugin:@typescript-eslint/recommended',
'plugin:prettier/recommended',
'plugin:@typescript-eslint/recommended-requiring-type-checking'
],
root: true,
env: {
node: true,
jest: true
},
ignorePatterns: ['.eslintrc.js'],
rules: {
'@typescript-eslint/explicit-function-return-type': 'error',
'@typescript-eslint/explicit-module-boundary-types': 'error',
'@typescript-eslint/for-direction': 'error',
'@typescript-eslint/getter-return': 'error',
'@typescript-eslint/interface-name-prefix': 'off',
'@typescript-eslint/no-async-promise-executor': 'error',
'@typescript-eslint/no-await-in-loop': 'error',
'@typescript-eslint/no-class-assign': 'error',
'@typescript-eslint/no-compare-neg-zero': 'error',
'@typescript-eslint/no-cond-assign': 'error',
'@typescript-eslint/no-const-assign': 'error',
'@typescript-eslint/no-constant-condition': 'error',
'@typescript-eslint/no-constructor-return': 'error',
'@typescript-eslint/no-control-regex': 'error',
'@typescript-eslint/no-debugger': 'error',
'@typescript-eslint/no-dupe-args': 'error',
'@typescript-eslint/no-dupe-class-members': 'error',
'@typescript-eslint/no-dupe-else-if': 'error',
'@typescript-eslint/no-dupe-keys': 'error',
'@typescript-eslint/no-duplicate-case': 'error',
'@typescript-eslint/no-duplicate-imports': 'error',
'@typescript-eslint/no-empty-character-class': 'error',
'@typescript-eslint/no-empty-pattern': 'error',
'@typescript-eslint/no-ex-assign': 'error',
'@typescript-eslint/no-explicit-any': 'error',
'@typescript-eslint/no-fallthrough': 'error',
'@typescript-eslint/no-func-assign': 'error',
'@typescript-eslint/no-import-assign': 'error',
'@typescript-eslint/no-inner-declarations': 'error',
'@typescript-eslint/no-invalid-regexp': 'error',
'@typescript-eslint/no-irregular-whitespace': 'error',
'@typescript-eslint/no-loss-of-precision': 'error',
'@typescript-eslint/no-misleading-character-class': 'error',
'@typescript-eslint/no-new-symbol': 'error',
'@typescript-eslint/no-obj-calls': 'error',
'@typescript-eslint/no-promise-executor-return': 'error',
'@typescript-eslint/no-prototype-builtins': 'error',
'@typescript-eslint/no-self-assign': 'error',
'@typescript-eslint/no-self-compare': 'error',
'@typescript-eslint/no-setter-return': 'error',
'@typescript-eslint/no-sparse-arrays': 'error',
'@typescript-eslint/no-template-curly-in-string': 'error',
'@typescript-eslint/no-this-before-super': 'error',
'@typescript-eslint/no-undef': 'error',
'@typescript-eslint/no-unexpected-multiline': 'error',
'@typescript-eslint/no-unmodified-loop-condition': 'error',
'@typescript-eslint/no-unreachable': 'error',
'@typescript-eslint/no-unreachable-loop': 'error',
'@typescript-eslint/no-unsafe-finally': 'error',
'@typescript-eslint/no-unsafe-negation': 'error',
'@typescript-eslint/no-unsafe-optional-chaining': 'error',
'@typescript-eslint/no-unused-expressions': 'error',
'@typescript-eslint/no-unused-labels': 'error',
'@typescript-eslint/no-unused-private-class-members': 'error',
'@typescript-eslint/no-unused-vars': 'error',
'@typescript-eslint/no-use-before-define': 'error',
'@typescript-eslint/no-useless-backreference': 'error',
'@typescript-eslint/require-atomic-updates': 'error',
'@typescript-eslint/use-isnan ': 'error',
'@typescript-eslint/valid-typeof': 'error',
curly: 'error'
}
};
package.json內容:
...
"scripts": {
"lint": "eslint \"{src,libs}/**/*.ts\" --fix",
"lint:ci": "eslint \"{src,libs}/**/*.ts\"",
...
"devDependencies": {
"@typescript-eslint/eslint-plugin": "5.12.1",
"@typescript-eslint/parser": "5.12.1",
"eslint": "8.9.0",
"eslint-config-prettier": "8.4.0",
"eslint-plugin-import": "2.25.4",
"eslint-plugin-prettier": "4.0.0",
...
完整錯誤列表:
1:1 error Definition for rule '@typescript-eslint/for-direction' was not found @typescript-eslint/for-direction
1:1 error Definition for rule '@typescript-eslint/getter-return' was not found @typescript-eslint/getter-return
1:1 error Definition for rule '@typescript-eslint/no-async-promise-executor' was not found @typescript-eslint/no-async-promise-executor
1:1 error Definition for rule '@typescript-eslint/no-await-in-loop' was not found @typescript-eslint/no-await-in-loop
1:1 error Definition for rule '@typescript-eslint/no-class-assign' was not found @typescript-eslint/no-class-assign
1:1 error Definition for rule '@typescript-eslint/no-compare-neg-zero' was not found @typescript-eslint/no-compare-neg-zero
1:1 error Definition for rule '@typescript-eslint/no-cond-assign' was not found @typescript-eslint/no-cond-assign
1:1 error Definition for rule '@typescript-eslint/no-const-assign' was not found @typescript-eslint/no-const-assign
1:1 error Definition for rule '@typescript-eslint/no-constant-condition' was not found @typescript-eslint/no-constant-condition
1:1 error Definition for rule '@typescript-eslint/no-constructor-return' was not found @typescript-eslint/no-constructor-return
1:1 error Definition for rule '@typescript-eslint/no-control-regex' was not found @typescript-eslint/no-control-regex
1:1 error Definition for rule '@typescript-eslint/no-debugger' was not found @typescript-eslint/no-debugger
1:1 error Definition for rule '@typescript-eslint/no-dupe-args' was not found @typescript-eslint/no-dupe-args
1:1 error Definition for rule '@typescript-eslint/no-dupe-else-if' was not found @typescript-eslint/no-dupe-else-if
1:1 error Definition for rule '@typescript-eslint/no-dupe-keys' was not found @typescript-eslint/no-dupe-keys
1:1 error Definition for rule '@typescript-eslint/no-duplicate-case' was not found @typescript-eslint/no-duplicate-case
1:1 error Definition for rule '@typescript-eslint/no-empty-character-class' was not found @typescript-eslint/no-empty-character-class
1:1 error Definition for rule '@typescript-eslint/no-empty-pattern' was not found @typescript-eslint/no-empty-pattern
1:1 error Definition for rule '@typescript-eslint/no-ex-assign' was not found @typescript-eslint/no-ex-assign
1:1 error Definition for rule '@typescript-eslint/no-fallthrough' was not found @typescript-eslint/no-fallthrough
1:1 error Definition for rule '@typescript-eslint/no-func-assign' was not found @typescript-eslint/no-func-assign
1:1 error Definition for rule '@typescript-eslint/no-import-assign' was not found @typescript-eslint/no-import-assign
1:1 error Definition for rule '@typescript-eslint/no-inner-declarations' was not found @typescript-eslint/no-inner-declarations
1:1 error Definition for rule '@typescript-eslint/no-invalid-regexp' was not found @typescript-eslint/no-invalid-regexp
1:1 error Definition for rule '@typescript-eslint/no-irregular-whitespace' was not found @typescript-eslint/no-irregular-whitespace
1:1 error Definition for rule '@typescript-eslint/no-misleading-character-class' was not found @typescript-eslint/no-misleading-character-class
1:1 error Definition for rule '@typescript-eslint/no-new-symbol' was not found @typescript-eslint/no-new-symbol
1:1 error Definition for rule '@typescript-eslint/no-obj-calls' was not found @typescript-eslint/no-obj-calls
1:1 error Definition for rule '@typescript-eslint/no-promise-executor-return' was not found @typescript-eslint/no-promise-executor-return
1:1 error Definition for rule '@typescript-eslint/no-prototype-builtins' was not found @typescript-eslint/no-prototype-builtins
1:1 error Definition for rule '@typescript-eslint/no-self-assign' was not found @typescript-eslint/no-self-assign
1:1 error Definition for rule '@typescript-eslint/no-self-compare' was not found @typescript-eslint/no-self-compare
1:1 error Definition for rule '@typescript-eslint/no-setter-return' was not found @typescript-eslint/no-setter-return
1:1 error Definition for rule '@typescript-eslint/no-sparse-arrays' was not found @typescript-eslint/no-sparse-arrays
1:1 error Definition for rule '@typescript-eslint/no-template-curly-in-string' was not found @typescript-eslint/no-template-curly-in-string
1:1 error Definition for rule '@typescript-eslint/no-this-before-super' was not found @typescript-eslint/no-this-before-super
1:1 error Definition for rule '@typescript-eslint/no-undef' was not found @typescript-eslint/no-undef
1:1 error Definition for rule '@typescript-eslint/no-unexpected-multiline' was not found @typescript-eslint/no-unexpected-multiline
1:1 error Definition for rule '@typescript-eslint/no-unmodified-loop-condition' was not found @typescript-eslint/no-unmodified-loop-condition
1:1 error Definition for rule '@typescript-eslint/no-unreachable' was not found @typescript-eslint/no-unreachable
1:1 error Definition for rule '@typescript-eslint/no-unreachable-loop' was not found @typescript-eslint/no-unreachable-loop
1:1 error Definition for rule '@typescript-eslint/no-unsafe-finally' was not found @typescript-eslint/no-unsafe-finally
1:1 error Definition for rule '@typescript-eslint/no-unsafe-negation' was not found @typescript-eslint/no-unsafe-negation
1:1 error Definition for rule '@typescript-eslint/no-unsafe-optional-chaining' was not found @typescript-eslint/no-unsafe-optional-chaining
1:1 error Definition for rule '@typescript-eslint/no-unused-labels' was not found @typescript-eslint/no-unused-labels
1:1 error Definition for rule '@typescript-eslint/no-unused-private-class-members' was not found @typescript-eslint/no-unused-private-class-members
1:1 error Definition for rule '@typescript-eslint/no-useless-backreference' was not found @typescript-eslint/no-useless-backreference
1:1 error Definition for rule '@typescript-eslint/require-atomic-updates' was not found @typescript-eslint/require-atomic-updates
1:1 error Definition for rule '@typescript-eslint/use-isnan ' was not found @typescript-eslint/use-isnan
1:1 error Definition for rule '@typescript-eslint/valid-typeof' was not found @typescript-eslint/valid-typeof
我真的不知道我還需要在我的配置中添加什么才能使eslint
使用推薦的規則。 我一直在研究文檔,感覺就像我只是隨機嘗試一些事情來試圖讓錯誤消失。
該錯誤來自 ESLint 認為 TypeScript 規則是缺失的規則。
盡管您的package.json
為@typescript-eslint/eslint-plugin
和@typescript-eslint/parser
指定了正確的版本,但請仔細檢查您的項目是否確實使用了正確的版本。
運行以下命令:
npm ls @typescript-eslint/eslint-plugin
npm ls @typescript-eslint/parser
如果它們不是5.12.1
,請嘗試將它們更新到該版本。
npm install --save-dev @typescript-eslint/eslint-plugin@5.12.1
npm install --save-dev @typescript-eslint/parser@5.12.1
注意: 根據作者的說法,如果您全局安裝了 ESLint,那么也要全局安裝@typescript-eslint/eslint-plugin
(使用-g
而不是--save-dev
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.