Настройка ESLint и Prettier для проекта Vue.js

 

Prettier берет написанный вами код, преобразует его в AST, а затем выводит этот AST в более красивом (и чистом) формате. Цель этого инструмента – автоматизировать работу по форматированию кода, сделать его удобочитаемым. Prettier был быстро принят в React и более крупные экосистемы JavaScript (и даже в CSS!), но не в Vue – из-за отсутствия поддержки однофайловых компонентов (файлов .vue). Однако с версии 1.10 Prettier официально поддерживает файлы *.vue.

В этой статье вы узнаете, как настроить Prettier и ESLint для проекта Vue.

Требование

  • Для выполнения этого мануала вам понадобится локальная установка Node.js. Следуйте инструкциям для вашего дистрибутива: mac OSUbuntuDebianCentOS.
  • Базовые навыки по настройке проектов Vue.js не будут лишними.

Это руководство было протестировано на Node v16.5.0, npm v7.20.0, vue v2.6.11, eslint v6.7.2, prettier v2.3.2, eslint-config-prettier v8.3.0 и eslint-plugin-vue v6.2.2.

1: Подготовка проекта

Для начала нужно глобально установить prettier из NPM (если вы еще этого не сделали). Его можно устанавливать и индивидуально для отдельных проектов, но делать этого не рекомендуется.

npm install --global prettier@2.3.2

Затем запустите новый проект Vue, используя @vue/cli со стандартными конфигурациями:

npx @vue/cli create vue-eslint-prettier-example --default

Затем перейдите в каталог нового проекта:

cd vue-eslint-prettier-example

Добавьте в проект интеграционные пакеты eslint-prettier:

npm install --save-dev eslint-plugin-prettier@6.2.2 eslint-config-prettier@8.3.0

Примечание: На данном этапе вы можете столкнуться с ошибкой:

unable to resolve dependency tree

Она возникает из-за конфликта между версией eslint, которую устанавливает @vue/cli, и версией, объявленной этими интеграционными пакетами. Вы можете использовать флаг –legacy-peer-deps, чтобы обойти эту ошибку.

Теперь у вас есть новый тестовый проект Vue с поддержкой ESLint и Prettier.

2: Добавление конфигурации

Если вы создали свой проект с помощью @vue/cli, вы найдете конфигурацию ESLint внутри файла package.json в свойстве eslintConfig. Откройте этот файл.

Добавьте “plugin:prettier/recommended” во вложенное свойство extends после “plugin:vue/essential”, чтобы включить в ESLint поддержку Prettier с параметрами по умолчанию:

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

Если же вы используете не новый, а уже существующий проект с уже настроенным eslint, внесите те же изменения в файл .eslintrc.js (или в конфигурационный файл ESLint любого другого формата, если вы не работаете с .js):

module.exports = {
  "root": true,
  "extends": [
    "plugin:vue/essential",
    "plugin:prettier/recommended",
    "eslint:recommended"
  ],
}

Теперь ESLint будет использовать правила Prettier, рекомендованные по умолчанию.

3: Использование ESLint с Prettier

Если вы еще не установили и не настроили eslint для Vue, обратитесь к этому мануалу. В нем также показано, как настроить линтинг файлов Vue в реальном времени с помощью VSCode и Atom.

Установив eslint и настроив его, вы можете выполнить следующую команду:

eslint --fix

Эта команда вызовет Prettier и с его помощью автоматически переформатирует и улучшит ваши файлы JS и Vue. Теперь вам больше не придется беспокоиться о коде и рвать на себе волосы из-за стилей. Prettier будет автоматически улучшать код всех разработчиков вашей команды, кто использует eslint.

Заключение

В этом мануале вы узнали, как настроить Prettier и ESLint для улучшения кода вашего проекта Vue.

Tags: , ,

Добавить комментарий