草梅友仁个人使用的 eslint 检测规范


Keywords
code, style, lint, eslint, code style
License
MIT
Install
npm install eslint-config-cmyr@1.1.33

Documentation

eslint-config-cmyr

Version npm publish GitHub Workflow Status node-current Documentation Maintenance License: MIT

草梅友仁个人使用的 eslint 检测规范

支持 ESLint v9+ 的扁平化配置(Flat Config)

"lint": "cross-env NODE_ENV=production eslint src --fix"

风格理念

  1. 若无必要,勿增实体。
  2. 如果某元素可有可无,则无
  3. 若移除某元素会导致 bug ,则留,否则无

安装

# 前置依赖
npm install typescript eslint --save-dev
# 安装 eslint-config-cmyr
npm install eslint-config-cmyr --save-dev

配置

ESLint v9+ (推荐)

使用新的扁平化配置格式:

// eslint.config.js
import { defineConfig } from "eslint/config";
import cmyr from "eslint-config-cmyr";

export default defineConfig([cmyr]);

不同环境的配置

TypeScript 项目(默认)

// eslint.config.js
import { defineConfig } from "eslint/config";
import cmyr from "eslint-config-cmyr";

export default defineConfig([cmyr]);

Vue 项目

npm install typescript eslint eslint-plugin-vue eslint-config-cmyr --save-dev
// eslint.config.js
import { defineConfig } from "eslint/config";
import cmyr from "eslint-config-cmyr/vue";

export default defineConfig([cmyr]);

React 项目

npm install typescript eslint eslint-plugin-react eslint-config-cmyr --save-dev
// eslint.config.js
import { defineConfig } from "eslint/config";
import cmyr from "eslint-config-cmyr/react";

export default defineConfig([cmyr]);

Browser 项目

// eslint.config.js
import { defineConfig } from "eslint/config";
import cmyr from "eslint-config-cmyr/browser";

export default defineConfig([cmyr]);

Nuxt 项目

npm install typescript eslint eslint-plugin-vue eslint-config-cmyr @nuxt/eslint --save-dev
// nuxt.config.ts;
export default defineNuxtConfig({
    modules: ["@nuxt/eslint"],
    eslint: {
        config: {
            standalone: false,
        },
    },
});
// eslint.config.js
import cmyrConfig from "eslint-config-cmyr/nuxt";
import withNuxt from "./.nuxt/eslint.config.mjs";

export default withNuxt(cmyrConfig, {
    rules: {},
});