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

时间:2019-04-21 19:53:46

标签: laravel vue.js eslint

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

“解析错误:意外的令牌

我的.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>

这是我的.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: {
  },
};

1 个答案:

答案 0 :(得分:1)

我相信您需要插件eslint-plugin-vue,并将您的.eslintrc.js配置设置为以下设置之一,以使其正常工作。

  • "extends": ["plugin:vue/recommended"]
  • "extends": ["plugin:vue/base"]

对于您遇到的类似问题,您可以阅读more about eslint-plugin-vue here-here is a reference

希望这会有所帮助!

编辑: :这是来自eslint项目的vue cli配置(似乎您也可以使用["plugin:vue/essential"]

module.exports = {
  "root": true,
  "env": {
    "node": true
  },
  "extends": [
    "plugin:vue/essential",
    "eslint:recommended"
  ],
  "rules": {},
  "parserOptions": {
    "parser": "babel-eslint"
  }
}