ESLint и Prettier являются основными инструментами для обеспечения качества кода и единообразного стиля в проектах на Vue.js. ESLint отвечает за статический анализ кода и выявление потенциальных ошибок, а Prettier автоматически форматирует код, следуя заданным правилам стиля.
Для начала необходимо добавить ESLint в проект. В проектах на Vue.js, созданных с помощью Vue CLI, ESLint может быть интегрирован при создании проекта. Если проект уже создан, ESLint устанавливается через npm или yarn:
npm install eslint --save-dev
или
yarn add eslint --dev
После установки выполняется инициализация:
npx eslint --init
В процессе настройки выбираются:
.eslintrc.json,
.eslintrc.js или YAML.В результате создается файл конфигурации .eslintrc с
набором правил, которые можно настраивать вручную.
Prettier позволяет автоматически форматировать код и предотвращает конфликт стилей. Для установки используется:
npm install --save-dev prettier
или
yarn add --dev prettier
Создается файл конфигурации .prettierrc с настройками
форматирования:
{
"semi": true,
"singleQuote": true,
"trailingComma": "es5",
"printWidth": 100,
"tabWidth": 2
}
Для совместной работы ESLint и Prettier необходимо установить дополнительные пакеты:
npm install --save-dev eslint-config-prettier eslint-plugin-prettier
или
yarn add --dev eslint-config-prettier eslint-plugin-prettier
В конфигурации ESLint (.eslintrc.js) подключается:
module.exports = {
root: true,
env: {
node: true,
browser: true
},
extends: [
'plugin:vue/vue3-essential',
'eslint:recommended',
'plugin:prettier/recommended'
],
parserOptions: {
ecmaVersion: 2020
},
rules: {
// индивидуальные правила проекта
'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off'
}
};
Для удобного использования ESLint и Prettier добавляются скрипты:
"scripts": {
"lint": "eslint --ext .js,.vue src",
"lint:fix": "eslint --fix --ext .js,.vue src",
"format": "prettier --write 'src/**/*.{js,vue,css,scss,ts,json,md}'"
}
Для VS Code рекомендуется установить расширения:
В настройках VS Code добавляется:
{
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
"eslint.validate": ["javascript", "vue"]
}
Vue SFC (.vue файлы) содержат шаблон, скрипт и стили.
ESLint и Prettier корректно обрабатывают SFC через парсер
vue-eslint-parser и плагин
eslint-plugin-vue.
npm install --save-dev vue-eslint-parser eslint-plugin-vue
Конфигурация .eslintrc.js:
module.exports = {
parser: 'vue-eslint-parser',
parserOptions: {
parser: '@babel/eslint-parser',
ecmaVersion: 2020,
sourceType: 'module'
},
plugins: ['vue'],
extends: ['plugin:vue/vue3-essential', 'eslint:recommended', 'plugin:prettier/recommended']
};
Таким образом обеспечивается:
<script>.<template> и
<style> секций Prettier.Для предотвращения попадания некорректного кода в репозиторий можно использовать Husky и lint-staged:
npm install --save-dev husky lint-staged
В package.json добавляется:
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"src/**/*.{js,vue}": ["eslint --fix", "prettier --write"]
}
Эта настройка ESLint и Prettier обеспечивает строгий контроль качества кода, единообразный стиль и предотвращение ошибок в проектах на Vue.js. Она интегрируется с редакторами, CI/CD пайплайнами и автоматизирует исправление большинства проблем, оставляя разработчикам возможность сосредоточиться на функциональности.