使用最新的 vue-eslint-parser - encore

Use the latest vue-eslint-parser - encore

我能够设置 ESLint 与 Encore (Symfony) 一起工作。我的 .eslintrc.js 文件具有以下配置:

module.exports = {
    "parser": "vue-eslint-parser",
    "parserOptions": {
        "parser": "babel-eslint",
        "ecmaFeatures": {
            "legacyDecorators": true
        },
        "ecmaVersion": 5,
    },
    "extends": [
        "plugin:vue/base",
        "airbnb-base"
    ],
    "rules": {
       "vue/html-indent": [2, 4],
        ...
    },
    "env": {
        browser: true,
        es6: true,
        node: true
    },
    "plugins": [
        "vue",
    ]
};

每当我观看文件时,我都会收到以下错误 1:1 error Use the latest vue-eslint-parser. See also https://vuejs.github.io/eslint-plugin-vue/user-guide/#what-is-the-use-the-latest-vue-eslint-parser-error vue/html-indent

我尝试了以下链接中的解决方案:

如有任何建议,我们将不胜感激。谢谢

这是因为 Encore 将解析器选项强制设置为 babel-eslint,并且它与 eslint-plugin-vue 不兼容。

作为解决方法,您可以使用以下代码让 Encore/ESLint 整理您的 .vue 文件:

Encore
  .enableEslintLoader(options => {
      delete options.parser;
  })
  .configureLoaderRule('eslint', loader => {
      loader.test = /\.(jsx?|vue)$/;
  })

所有学分都归功于 Github 的 Kocal:https://github.com/symfony/webpack-encore/issues/656