【问题标题】:Why I'm getting "Parsing error: Unexpected token <" from ESLint in Vue components?为什么我在 Vue 组件中从 ESLint 收到“解析错误:意外的令牌 <”?
【发布时间】:2019-09-11 03:55:50
【问题描述】:

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

“解析错误:意外的token

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

【问题讨论】:

  • 好像你没有安装 Vue 插件
  • 你说的是 eslint-plugin-vue 吗?当我使用 eslint --init 时,它为我安装了 vue 插件。我的 package.json 文件中有这个(与 ESLint 相关):“babel-eslint”:“^10.0.1”、“eslint”:“^5.16.0”、“eslint-config-airbnb-base”:“ ^13.1.0”、“eslint-config-google”:“^0.12.0”、“eslint-plugin-babel”:“^5.3.0”、“eslint-plugin-import”:“^2.17.2” , "eslint-plugin-vue": "^5.2.2",

标签: laravel vue.js eslint


【解决方案1】:

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

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

您可以阅读more about eslint-plugin-vue here - here is a reference 了解您遇到的类似问题。

希望这会有所帮助!

编辑:这是来自 vue cli 项目的 eslint 配置:

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

【讨论】:

  • 当我使用 Airbnb 基地时,我只是将“plugin:vue/recommended”和“eslint:recommended”放在我的 .eslintrc.js 上,现在它可以工作了。谢谢。
  • 在我的根目录中使用 .eslintc 文件和上面的 JSON 解决了​​我的问题。
猜你喜欢
  • 2019-12-25
  • 2022-01-02
  • 2017-11-21
  • 2017-07-16
  • 1970-01-01
  • 1970-01-01
  • 2023-04-04
  • 1970-01-01
  • 2018-08-14
相关资源
最近更新 更多