Eslint 会因 Vue 项目中的任何错误而中断构建

Eslint breaks build for any error in a Vue project

在我的一个 Vue 项目中的某个时候,Eslint 开始由于任何错误(例如“字符串必须使用单引号”或“已声明但从未使用过的变量”)而中断构建。此外,格式错误不会自动更正(尽管它们应该?)。我不知道这到底是什么时候发生的,是什么原因造成的。可能在 npm install.

之后

我找到了多个通过向 eslint 配置添加 emitWarning: true 来解决问题的建议,但不幸的是,它对我不起作用。

在我看来,有时第一次尝试构建会成功,并且只有在我更改代码中的某些内容、保存并重新启动服务器后,才会“检测到”并抛出错误。此外,eslint 似乎只关心目前在 VS Code 中实际打开的文件,如果我关闭文件并重新启动,eslint 不再关心那里的格式不正确。

这是我的 .eslintrc.js 内容:

module.exports = {
    root: true,
    env: {
        node: true,
        "es6": true
    },
    extends: [
        "plugin:vue/essential",
        "@vue/standard"
    ],
    rules: {
        "no-console": process.env.NODE_ENV === "production" ? "error" : "off",
        "no-debugger": process.env.NODE_ENV === "production" ? "error" : "off",
        "indent": ["error", 4],
        "semi": ["error", "always"],
        "space-before-function-paren": ["error", "never"],
        "quotes": ["error", "single"]
    },
    parserOptions: {
        parser: "babel-eslint",
        sourceType: "module",
        ecmaVersion: 6,
        emitWarning: true, // tried with and without this
        emitError: false, // tried with and without this
        failOnError: false, // tried with and without this
        failOnWarning: false // tried with and without this
    }
};

我的另一个 Vue 项目工作正常。我无法查明设置中的任何有意义的差异。

如何阻止 eslint 破坏构建?这里还有什么问题?如果有任何帮助,我将不胜感激!

您可以通过更改 package.json 文件中的 build 脚本使构建命令跳过 ESlint:

"scripts": {
    "build": "vue-cli-service build --skip-plugins @vue/cli-plugin-eslint",
}

如果您的项目中没有使用合适的插件,请将其替换为合适的插件。