#laravel #vue.js #eslint
#laravel #vue.js #eslint
Вопрос:
Я создал проект Laravel и установил VSCode и все необходимые расширения. Одним из них является ESLint, и он отлично работает с JS-файлом, но когда я открываю компонент Vue, например (resources/js/component/ExampleComponent.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>
Вот мой .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. Похоже, вы не установили плагин Vue
2. Вы говорите об 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»,
Ответ №1:
Я считаю, что вам нужен плагин 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"
}
}
Комментарии:
1. Поскольку я использую базу Airbnb, я просто добавляю «плагин: vue / рекомендуемый» и «eslint: рекомендуемый» на моем.eslintrc.js и теперь это работает. Спасибо.
2. Использование файла .eslintc в моем корне с указанным выше как JSON устранило мою проблему.