217 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			217 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/*
 | 
						||
 * @Author: Kane
 | 
						||
 * @Date: 2023-03-14 09:19:21
 | 
						||
 * @LastEditors: Kane
 | 
						||
 * @FilePath: /task_schedule/.eslintrc.cjs
 | 
						||
 * @Description: eslint 配置文件
 | 
						||
 *
 | 
						||
 * Copyright (c) ${2022} by Kane, All Rights Reserved.
 | 
						||
 */
 | 
						||
module.exports = {
 | 
						||
    root: true,
 | 
						||
    env: { //  需要在env中指定运行的环境,这些环境其实就是一组预定义的全局变量,让 ESLint 知道当前环境存在这些全局变量
 | 
						||
        node: true,
 | 
						||
        browser: true,
 | 
						||
        es2021: true,
 | 
						||
    },
 | 
						||
    parser:"espree",
 | 
						||
    parserOptions:{
 | 
						||
        sourceType: "module",
 | 
						||
        ecmaVersion: 2021,
 | 
						||
    },
 | 
						||
    extends:["eslint:recommended",],
 | 
						||
    rules:{
 | 
						||
        indent: ["warn", 4,],
 | 
						||
        // 圆括号中的空格,为空不加空格,紧跟花括号、方括号、圆括号时也不加入空格
 | 
						||
        "space-in-parens": ["error", "always", { exceptions: ["{}", "[]", "()", "empty",], },],
 | 
						||
        "no-console": process.env.NODE_ENV === "production" ? "warn" : "off",
 | 
						||
        "no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off",
 | 
						||
        "no-unused-vars": "warn",
 | 
						||
        semi: ["error", "always",], // 控制行尾部分号
 | 
						||
        quotes: ["error", "double",],
 | 
						||
        "comma-dangle": ["error", {
 | 
						||
            arrays: "always",
 | 
						||
            objects: "always",
 | 
						||
            imports: "never",
 | 
						||
            exports: "never",
 | 
						||
            functions: "never",
 | 
						||
        },], // 数组和对象键值对最后一个逗号
 | 
						||
        "comma-style": ["error", "last",], //  逗号在行位
 | 
						||
        "no-undef-init": "error",
 | 
						||
        "no-invalid-this": "error",
 | 
						||
        "no-use-before-define": "error",
 | 
						||
        "no-shadow-restricted-names": "error", //  禁止对一些关键字或者保留字进行赋值操作,比如NaN、Infinity、undefined、eval、arguments等
 | 
						||
        "comma-spacing": ["error", { before: false, after: true, },],
 | 
						||
        "array-bracket-spacing": ["error", "never", {
 | 
						||
            singleValue: false,
 | 
						||
            objectsInArrays: false,
 | 
						||
            arraysInArrays: false,
 | 
						||
        },],
 | 
						||
        "brace-style": ["error", "allman", { allowSingleLine: true, },],
 | 
						||
        "prefer-const": "warn",
 | 
						||
        "space-before-function-paren": ["error", {
 | 
						||
            anonymous: "always",
 | 
						||
            named: "never",
 | 
						||
            asyncArrow: "always",
 | 
						||
        },],
 | 
						||
    },
 | 
						||
    overrides: [
 | 
						||
        {
 | 
						||
            files: ["*.vue",],
 | 
						||
            parser: "vue-eslint-parser",
 | 
						||
            parserOptions: {
 | 
						||
                ecmaVersion: 2021,
 | 
						||
                sourceType: "module",
 | 
						||
                parser: { // <script>标签中的lang属性配置不同的parser
 | 
						||
                    ts: "@typescript-eslint/parser",
 | 
						||
                    js: "espree",
 | 
						||
                    "<template>": "espree",
 | 
						||
                },
 | 
						||
                // project: "tsconfig.json",
 | 
						||
                project: ["tsconfig.json", "tsconfig.app.json",],
 | 
						||
                extraFileExtensions: [".vue",],
 | 
						||
            },
 | 
						||
            plugins: ["eslint-plugin-vue", "@stylistic",],
 | 
						||
            extends: [
 | 
						||
                // "plugin:vue/vue3-essential",
 | 
						||
                "plugin:vue/recommended",
 | 
						||
                "eslint:recommended",
 | 
						||
                // "standard-with-typescript",
 | 
						||
                "plugin:@typescript-eslint/eslint-recommended",
 | 
						||
                "plugin:@typescript-eslint/recommended",
 | 
						||
            ],
 | 
						||
            rules: {
 | 
						||
                indent: ["warn", 4,],
 | 
						||
                "no-trailing-spaces": ["error", {"ignoreComments": true,},],
 | 
						||
                // 圆括号中的空格,为空不加空格,紧跟花括号、方括号、圆括号时也不加入空格
 | 
						||
                "space-in-parens": ["error", "always", { exceptions: ["{}", "[]", "()", "empty",], },],
 | 
						||
                "no-console": process.env.NODE_ENV === "production" ? "warn" : "off",
 | 
						||
                "no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off",
 | 
						||
                "no-unused-vars": "warn",
 | 
						||
                "semi-spacing": ["error", {"before": false, "after": true,},], // 控制行尾部分号
 | 
						||
                "quotes": ["error", "double",],
 | 
						||
                "comma-dangle": ["error", {
 | 
						||
                    arrays: "always",
 | 
						||
                    objects: "always",
 | 
						||
                    imports: "never",
 | 
						||
                    exports: "never",
 | 
						||
                    functions: "never",
 | 
						||
                },], // 数组和对象键值对最后一个逗号
 | 
						||
                "comma-style": ["error", "last",], //  逗号在行位
 | 
						||
                "no-undef-init": "error",
 | 
						||
                "no-invalid-this": "error",
 | 
						||
                "no-use-before-define": "error",
 | 
						||
                "no-shadow-restricted-names": "error", //  禁止对一些关键字或者保留字进行赋值操作,比如NaN、Infinity、undefined、eval、arguments等
 | 
						||
                "brace-style": ["error", "allman", { allowSingleLine: true, },],
 | 
						||
                "prefer-const": "warn",
 | 
						||
                "space-before-function-paren": ["error", {
 | 
						||
                    anonymous: "always",
 | 
						||
                    named: "never",
 | 
						||
                    asyncArrow: "always",
 | 
						||
                },],
 | 
						||
                // vue
 | 
						||
                "vue/html-indent": ["error", 4,],
 | 
						||
                "vue/max-attributes-per-line": ["error", {
 | 
						||
                    "singleline": {
 | 
						||
                        "max": 3,
 | 
						||
                    },
 | 
						||
                    "multiline": {
 | 
						||
                        "max": 2,
 | 
						||
                    },
 | 
						||
                },],
 | 
						||
                // typescript
 | 
						||
                // "@typescript-eslint/indent": ["warn", 4,],
 | 
						||
                "@stylistic/indent": ["warn", 4,],
 | 
						||
                "@typescript-eslint/no-explicit-any": "warn",
 | 
						||
                // "@typescript-eslint/no-unsafe-argument": "warn",
 | 
						||
                "@typescript-eslint/no-extra-semi": "off",
 | 
						||
                "@typescript-eslint/no-inferrable-types": "off",
 | 
						||
                "@typescript-eslint/no-unused-vars": "warn",
 | 
						||
                "@typescript-eslint/ban-ts-comment": "warn",
 | 
						||
                "@typescript-eslint/member-delimiter-style": "off",
 | 
						||
                "@stylistic/semi": ["error", "always",], //  控制行尾部分号
 | 
						||
                "@stylistic/brace-style": ["error", "allman", { allowSingleLine: true, },],
 | 
						||
                "@stylistic/comma-dangle": ["error", {
 | 
						||
                    arrays: "always",
 | 
						||
                    objects: "always",
 | 
						||
                    imports: "never",
 | 
						||
                    exports: "never",
 | 
						||
                    functions: "never",
 | 
						||
                },], // 数组和对象键值对最后一个逗号
 | 
						||
                "@stylistic/quotes": ["error", "double",],
 | 
						||
                "@typescript-eslint/space-before-function-paren": "off",
 | 
						||
                // 方括号的空格问题
 | 
						||
                "comma-spacing": ["error", { before: false, after: true, },],
 | 
						||
                "@typescript-eslint/comma-spacing": ["off", { before: false, after: true, },], // 使用eslint的,不用ts的
 | 
						||
                "array-bracket-spacing": ["error", "never", {
 | 
						||
                    singleValue: false,
 | 
						||
                    objectsInArrays: false,
 | 
						||
                    arraysInArrays: false,
 | 
						||
                },],
 | 
						||
            },
 | 
						||
        },
 | 
						||
        {
 | 
						||
            files: ["*.ts",],
 | 
						||
            parser: "@typescript-eslint/parser",
 | 
						||
            parserOptions: {
 | 
						||
                project: "./tsconfig.json",
 | 
						||
                // project: ["tsconfig.json", "tsconfig.app.json",],
 | 
						||
            },
 | 
						||
            plugins: ["@typescript-eslint", "@stylistic",],
 | 
						||
            extends: [
 | 
						||
                "eslint:recommended",
 | 
						||
                // "standard-with-typescript",
 | 
						||
                "plugin:@typescript-eslint/eslint-recommended",
 | 
						||
                "plugin:@typescript-eslint/recommended",
 | 
						||
            ],
 | 
						||
            rules: {
 | 
						||
                "no-trailing-spaces": ["error", {"ignoreComments": true,},],
 | 
						||
                // 圆括号中的空格,为空不加空格,紧跟花括号、方括号、圆括号时也不加入空格
 | 
						||
                "space-in-parens": ["error", "always", { exceptions: ["{}", "[]", "()", "empty",], },],
 | 
						||
                "no-console": process.env.NODE_ENV === "production" ? "warn" : "off",
 | 
						||
                "no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off",
 | 
						||
                "@typescript-eslint/no-explicit-any": "off",
 | 
						||
                // "@typescript-eslint/no-unsafe-argument": "warn",
 | 
						||
                // "@typescript-eslint/indent": ["error", 4,],
 | 
						||
                "@stylistic/indent": ["warn", 4,],
 | 
						||
                "@typescript-eslint/no-extra-semi": "off",
 | 
						||
                "@typescript-eslint/no-inferrable-types": "off",
 | 
						||
                "@typescript-eslint/no-unused-vars": "warn",
 | 
						||
                "@typescript-eslint/ban-ts-comment": "warn",
 | 
						||
                "@typescript-eslint/member-delimiter-style": "off",
 | 
						||
                "@stylistic/semi": ["error", "always",], // 控制行尾部分号
 | 
						||
                // "@typescript-eslint/brace-style": ["error", "allman", { allowSingleLine: true, },],
 | 
						||
                "@stylistic/brace-style": ["error", "allman", { allowSingleLine: true, },],
 | 
						||
                "@stylistic/comma-dangle": ["error", {
 | 
						||
                    arrays: "always",
 | 
						||
                    objects: "always",
 | 
						||
                    imports: "never",
 | 
						||
                    exports: "never",
 | 
						||
                    functions: "never",
 | 
						||
                },], // 数组和对象键值对最后一个逗号
 | 
						||
                "@stylistic/quotes": ["error", "double",],
 | 
						||
                "@typescript-eslint/space-before-function-paren": "off",
 | 
						||
                "@typescript-eslint/strict-boolean-expressions": ["error", {
 | 
						||
                    allowString: false,
 | 
						||
                },],
 | 
						||
                "comma-style": ["error", "last",], //  逗号在行位
 | 
						||
                "comma-spacing": ["error", { before: false, after: true, },],
 | 
						||
                "@typescript-eslint/comma-spacing": ["off", { before: false, after: true, },], // 使用eslint的,不用ts的
 | 
						||
                "array-bracket-spacing": ["error", "never", {
 | 
						||
                    singleValue: false,
 | 
						||
                    objectsInArrays: false,
 | 
						||
                    arraysInArrays: false,
 | 
						||
                },],
 | 
						||
                "no-undef-init": "error",
 | 
						||
                "no-invalid-this": "error",
 | 
						||
                "no-use-before-define": "error",
 | 
						||
                "no-shadow-restricted-names": "error", //  禁止对一些关键字或者保留字进行赋值操作,比如NaN、Infinity、undefined、eval、arguments等
 | 
						||
                "prefer-const": "warn",
 | 
						||
                "spaced-comment": "error",
 | 
						||
                "space-before-function-paren": "off",
 | 
						||
                "semi-spacing": ["error", {"before": false, "after": true,},],
 | 
						||
            },
 | 
						||
        },
 | 
						||
    ],
 | 
						||
};
 |