为什么我在 Vue 组件中从 ESLint 收到“解析错误:意外令牌 <”?

Wev*_*ipe 5 laravel eslint vue.js

我创建了一个 Laravel 项目并安装了 VSCode 和所有必要的扩展。其中之一是 ESLint,它可以与 JS 文件一起正常工作,但是当我打开像 (resources/js/component/ExampleComponent.vue) 这样的 Vue 组件时,我从 ESLint 收到此错误:

“解析错误:意外标记 < eslint [1, 1]”

我的.eslintrc.js文件是使用./node_modules/.bin/eslint --init和回答问题生成的。

我已经用谷歌搜索并找到了这个解决方案:

npm install babel-eslint --save-dev

并将其添加到.eslintrc.js

parser: "babel-eslint"

但无论如何它都不起作用,错误仍然存​​在。

这是我的ExampleComponent.vue(未经 Laravel 修改):

<template> (ESLint error here: "Parsing error: Unexpected token < eslint [1,1]")
    <div class="container">
        <div class="row justify-content-center">
            <div class="col-md-8">
                <div class="card">
                    <div class="card-header">
                        Example Component
                    </div>

                    <div class="card-body">
                        I'm an example component.
                    </div>
                </div>
            </div>
        </div>
    </div>
</template>

<script>
    export default {
        mounted() {
            console.log('Component mounted.')
        }
    }
</script>
Run Code Online (Sandbox Code Playgroud)

这是我的.eslintrc.js

module.exports = {
  env: {
    browser: true,
    es6: true,
  },
  extends: 'airbnb-base',
  globals: {
    Atomics: 'readonly',
    SharedArrayBuffer: 'readonly',
  },
  parserOptions: {
    ecmaVersion: 2018,
    sourceType: 'module',
    parser: "babel-eslint",
  },
  plugins: [
    'vue',
  ],
  rules: {
  },
};
Run Code Online (Sandbox Code Playgroud)

Mat*_*ich 6

我相信您需要插件eslint-plugin-vue,并将您的.eslintrc.js配置设置为捆绑配置之一

  • "extends": ["plugin:vue/base"]
  • "extends": ["plugin:vue/essential"]
  • "extends": ["plugin:vue/strongly-recommended"]
  • "extends": ["plugin:vue/recommended"]

您可以此处阅读更多相关信息eslint-plugin-vue-这是您遇到的类似问题的参考

希望这可以帮助!

编辑:这是eslint一个vue cli项目的配置:

module.exports = {
  "root": true,
  "env": {
    "node": true
  },
  "extends": [
    "plugin:vue/essential",
    "eslint:recommended"
  ],
  "rules": {},
  "parserOptions": {
    "parser": "babel-eslint"
  }
}
Run Code Online (Sandbox Code Playgroud)