1.0.5 • Published 8 months ago

@jsxiaosi/eslint-config v1.0.5

Weekly downloads
-
License
MIT
Repository
github
Last release
8 months ago

@jsxiaosi/eslint-config

基于@antfu/eslint-config修改的个人配置

  • 可选React、Vue配置
  • 可选的Prettier风格化配置

安装

pnpm add -D @jsxiaosi/eslint-config eslint

配置eslint.config.js

import jsxiaosi from '@jsxiaosi/eslint-config';

export default jsxiaosi();

添加命令

{
  "lint:eslint": "eslint . --fix",
  "tsc": "tsc --noEmit --skipLibCheck",
}

VS Code 自动修复

{
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true
  }
}

定制

配置集成

// eslint.config.js
import jsxiaosi from '@jsxiaosi/eslint-config';

export default jsxiaosi({
  // 项目类型。'lib' 表示库,默认为 'app'
  type: 'lib',

  // TypeScript 是自动检测的,你也可以明确启用它们:
  typescript: true,

  // 禁用 jsonc 和 yaml 支持
  jsonc: false,

  // Flat 配置不再支持 `.eslintignore`,请改用 `ignores`
  ignores: [
    '**/fixtures',
    // ...globs
  ],
});
// eslint.config.js
import jsxiaosi from '@jsxiaosi/eslint-config';

export default jsxiaosi(
  {
    // jsxiaosi config 配置
  },

  // 从第二个参数开始,它们是 ESLint Flat Configs
  // 你可以有多个配置
  {
    files: ['**/*.ts'],
    rules: {},
  },
  {
    rules: {},
  },
);

插件重命名

New PrefixOriginal PrefixSource Plugin
ts/*@typescript-eslint/*@typescript-eslint/eslint-plugin

自定义前缀

import jsxiaosi from '@jsxiaosi/eslint-config';

export default jsxiaosi().renamePlugins({
  /**
   * {
   *    oldPrefix: newPrefix
   * }
   */
  ts: '@typescript-eslint',
  // ...
});

覆盖规则

某些规则仅在特定文件中启用,例如,ts/规则仅在文件中启用.ts,vue/规则仅在文件中启用.vue。如果要覆盖规则,则需要指定文件扩展名:

// eslint.config.js
import jsxiaosi from '@jsxiaosi/eslint-config';

export default jsxiaosi(
  {
    vue: true,
    typescript: true,
  },
  {
    // 请记住在此处指定文件 glob,否则可能会导致 vue 插件处理非 vue 文件
    files: ['**/*.vue'],
    rules: {
      'vue/operator-linebreak': ['error', 'before'],
    },
  },
  {
    // 不带“文件”的规则是所有文件的通用规则
    rules: {
      'style/semi': ['error', 'never'],
    },
  },
);

每个配置中集成了overrides方便覆盖规则

// eslint.config.js
import jsxiaosi from '@jsxiaosi/eslint-config';

export default jsxiaosi({
  vue: {
    overrides: {
      'vue/operator-linebreak': ['error', 'before'],
    },
  },
  typescript: {
    overrides: {
      'ts/consistent-type-definitions': ['error', 'interface'],
    },
  },
  yaml: {
    overrides: {
      // ...
    },
  },
});

配置

Vue

启动Vue配置

// eslint.config.js
import jsxiaosi from '@jsxiaosi/eslint-config';

export default jsxiaosi({
  vue: true,
});

Vue2

vueVersion 默认Vue3版本,手动更改成Vue2版本

// eslint.config.js
import jsxiaosi from '@jsxiaosi/eslint-config';

export default jsxiaosi({
  vue: {
    vueVersion: 2,
  },
});

运行 npm run lint:eslint 会提示你安装对应的插件,你也可以手动安装

pnpm -D eslint-plugin-vue vue-eslint-parser

React

// eslint.config.js
import jsxiaosi from '@jsxiaosi/eslint-config';

export default jsxiaosi({
  react: true,
});

运行 npm run lint:eslint 会提示你安装对应的插件,你也可以手动安装

pnpm i -D @eslint-react/eslint-plugin eslint-plugin-react-hooks eslint-plugin-react-refresh

Prettier

// eslint.config.js
import jsxiaosi from '@jsxiaosi/eslint-config';

export default jsxiaosi({
  prettier: true,
});

运行 npm run lint:eslint 会提示你安装对应的插件,你也可以手动安装

pnpm i -D eslint-plugin-prettier prettier

使用外部Prettier配置文件

import jsxiaosi from '@jsxiaosi/eslint-config';

export default jsxiaosi({
   prettier:{
     usePrettierrc: true
    }
});

同时也提供了Prettier外部文件的配置 @jsxiaosi/eslint-config-prettier

1.0.5

8 months ago

1.0.4

8 months ago

1.0.3

8 months ago

1.0.2

9 months ago

1.0.1

9 months ago

1.0.0

9 months ago

0.1.0

12 months ago

0.0.21

2 years ago

0.0.20

2 years ago

0.0.15

2 years ago

0.0.16

2 years ago

0.0.17

2 years ago

0.0.18

2 years ago

0.0.19

2 years ago

0.0.10

3 years ago

0.0.11

3 years ago

0.0.12

3 years ago

0.0.13

3 years ago

0.0.14

3 years ago

0.0.9

3 years ago

0.0.8

3 years ago

0.0.7

3 years ago

0.0.6

3 years ago

0.0.5

3 years ago

0.0.3

3 years ago

0.0.2

3 years ago