跳至正文
Wener Notes

eslint

约 2 分钟阅读
bash
npx eslint "src/**" --ext .ts --ext .tsx

TIMING=1 npx eslint src # 输出时间,排查慢的插件

# fix single rule
# eslint --fix --rule 'quotes: [2, double]' .
eslint --no-eslintrc --parser @typescript-eslint/parser --fix --rule 'prefer-const: 1' src/**/*.ts

eslint --env-info

配置

JavaScript
module.exports = {
  root: true,
  // 扩展现有配置 - 可以是绝对路径,可以是包/模块
  // 缩写逻辑:
  //   custom -> eslint-config-custom
  //   @wener -> @wener/eslint-config
  extends: ['@wener/eslint-config-custom'],
  settings: {
    next: {
      rootDir: ['apps/*/'],
    },
  },
};

disable/false positive

JavaScript
// 忽略单个规则
/*eslint eqeqeq:0*/

// 忽略单行
// eslint-disable-next-line

// 忽略范围
/*eslint-disable */
alert('foo');
/*eslint-enable */

// 忽略当前
a == a; // eslint-disable-line

tslint

  • @typescript-eslint/no-redeclare
    • ignoreDeclarationMerge
      • interface + interface
      • namespace + namespace
      • class + interface
      • class + namespace
      • class + interface + namespace
      • function + namespace
      • enum + namespace
      • 没有 const + interface - utils 合集
  • @typescript-eslint/no-extraneous-class
    • allowStaticOnly
      • 方便暴露 utils 合集

FAQ

The file does not match your project config

.eslintrc.js
module.exports = {
  ignorePatterns: ['.eslintrc.js'],
};

eslint decorators consistent-type-imports

  • tsconfig.json emitDecoratorMetadata=true

The keyword 'import' is reserved

json
{
  "parserOptions": {
    "sourceType": "module"
  }
}

\n## Reference Snippets\n

bash
npx eslint --init
bash
yarn add -D eslint @typescript-eslint/parser @typescript-eslint/eslint-plugin

yarn add eslint-config-prettier eslint-plugin-jest eslint-plugin-react eslint-plugin-react-hooks
JavaScript
module.exports = {
  root: true,
  parser: '@typescript-eslint/parser',
  plugins: ['@typescript-eslint'],
  extends: [
    'eslint:recommended',
    'plugin:@typescript-eslint/eslint-recommended',
    'plugin:@typescript-eslint/recommended',
  ],
};

关联信息

反向链接、本文链接的其他页面和外部资料。

反向链接

  • Web Dev FAQ
    笔记 · eslint

    | abbr. | stand for | · | iife | Immediately Invoked Function Expression | · 在开发时 assert 错误 · invariant · 早期来自 React, flux

参考资料

GitHub6 条
其他外链5 条
最近更新commit 906e816编辑