typescript 在我的svelte项目中,激活airbnb的eslint规则的步骤是什么?

vxf3dgd4  于 2023-03-13  发布在  TypeScript
关注(0)|答案(1)|浏览(140)

我正在尝试将Airbnb的eslint规则用于我的sveltekit项目。
我有一个.eslintrc.ts文件,其内容如下:

module.exports = {
    root: true,
    parser: "@typescript-eslint/parser",
    extends: ["airbnb-base"],
    plugins: ["svelte3", "@typescript-eslint"],
    overrides: [{ files: ["**/*.svelte"], processor: "svelte3/svelte3" }],
    settings: {
        "svelte3/typescript": () => require("typescript"),
    },
    rules: {
        "no-new-object": true, // i tried to enable specific rules
    },
    parserOptions: {
        project: ["./tsconfig.json"],
    },
    env: {
        browser: true,
        es2017: true,
        node: true,
        jest: true,
    },
}

为什么这些规则对我不起作用呢?这里有一个违反规则的例子:

const x = new Object()

这违反了no-new-object,但不会给予错误
为什么它不工作?我期望extends: ["airbnb-base"],给予我访问所有规则的权限。我还期望extends: ["airbnb"],给我所有规则。两者都不起作用。
下面是我在package.json开发依赖项中安装的一些东西:

"@typescript-eslint/eslint-plugin": "^5.54.1",
        "@typescript-eslint/parser": "^5.54.1",
        "eslint": "^8.35.0",
        "eslint-config-airbnb": "^19.0.4",
        "eslint-config-airbnb-base": "^15.0.0",
        "eslint-config-airbnb-typescript": "^17.0.0",
        "eslint-config-prettier": "^8.7.0",
        "eslint-plugin-import": "^2.27.5",
        "eslint-plugin-svelte3": "^4.0.0",

我想学习如何激活所有的airbnb规则或一个一个激活,但没有说明如何做到这一点
我试着关注thisthis,但都不起作用。我还关闭了一堆其他研究标签,没有给我带来好的结果。This也没有帮助
编辑:目前看来,问题是我有一个.eslintrc.cjs复制eslint设置;linter正在查看那个文件,而不是我期望它查看的那个。删除那个.cjs文件让我离解决这个问题更近了一步;如果删除.cjs文件可以解决我的问题,我可能会关闭/删除此q

bnlyeluc

bnlyeluc1#

当我的同事说要安装eslint-plugin-svelte时,解决方案出现了
The page for it显示“eslint-plugin-svelte不能与eslint-plugin-svelte 3一起使用。如果您正在使用eslint-plugin-svelte 3,则需要将其删除。”
所以我安装了eslint-plugin-svelte,并将我的.eslintrc.cjs(我开始使用它而不是.ts)改为:

module.exports = {
    root: true,
    parser: "@typescript-eslint/parser",
    extends: ["airbnb", "airbnb-typescript", "airbnb-typescript/base", "plugin:svelte/recommended"],
    plugins: ["@typescript-eslint"],
    overrides: [{ files: ["**/*.svelte", "**/*.ts"] }],
    settings: {
        "svelte3/typescript": () => require("typescript"),
    },
    parserOptions: {
        project: ["./tsconfig.json"],
    },
    rules: {
        "no-new-object": 1,
    },
    env: {
        browser: true,
        es2017: true,

        node: true,
    },
}

请注意,删除了对svelte3的提及。
现在npx eslint . --ext .ts显示483个错误,const x = new Object()给出警告The object literal notation {} is preferable.eslintno-new-object)
胜利

相关问题