Шаг 4. Добавление Prettier и ESLint в готовый проект
Перед добавлением чего-либо в проект нужно проверить, работает ли он вообще. Для этого в терминале вводим команду npm start или, если исходная сборка не менялась — npm run serve.
После ввода команды должен локально запуститься devServer, но только в том случае, если все пути указаны правильно. В противном случае в консоль будет выведена ошибка: сервер не запустился из-за неправильно указанного пути входной точки. Также есть вариант: сервер запустится, и в открытом окне браузера откроется наш проект — либо с ошибками, либо без. Всё зависит от того, правильно ли указаны пути.
Далее вводим две команды.
Первая — npm i prettier -D. Во время загрузки нужно создать файл .prettierrc и внести в него необходимые правила.
В итоге у нас получится такой конфиг Prettier:
module.exports = {
trailingComma: 'all',
tabWidth: 2,
semi: true,
singleQuote: true,
printWidth: 120,
arrowParens: 'always',
endOfLine: 'auto',
bracketSpacing: false,
embeddedLanguageFormatting: 'auto',
htmlWhitespaceSensitivity: 'css',
insertPragma: false,
quoteProps: 'as-needed',
requirePragma: false,
useTabs: false,
};
trailingComma— отвечает за постановку точки с запятой;tabWidth— отвечает за размер отступов от края;semi— отвечает за постановку запятых;singleQuote— одинарные кавычки;printWidth— максимальная длина строки;arrowParens— отступ между функцией и её аргументами;endOfLine— конец линии, перенос строк;bracketSpacing— отступы в фигурных кавычках;embeddedLanguageFormatting— автоматическое обнаружение языка, который нужно форматировать;htmlWhitespaceSensitivity— работает также с инлайновыми стилями;insertPragma— специальный способ форматирования;quoteProps— кавычки для свойств;requirePragma— форматирование jsdoc (типизация в JS);useTabs— использование табов.
Вторая команда — npm init @eslint/config.
Когда мы ответим на вопросы, появится файл в выбранном формате со следующими полями:
{
"env": {
"browser": true,
"es2021": true
},
"extends": "airbnb-base",
"overrides": [
],
"parserOptions": {
"ecmaVersion": "latest",
"sourceType": "module"
},
"rules": {
"no-unused-vars": 1,
"no-console": 0,
"no-plusplus": 0,
"no-debugger": 1,
}
}
Здесь нас интересует поле rules, куда мы вписываем правила. По умолчанию, если вы выбрали стайлгайд AirBnB, он будет требовать постановку двойных кавычек, точек с запятой и отступов между переменными.
Мы добавили в проект правила:
no-unused-vars— нельзя объявлять переменные и не использовать их;no-console— разрешёнconsole.log();no-plusplus— можно использовать++;no-debugger— нельзя использовать дебагер;
Если правила будут нарушены, проект не соберётся.
В нашем проекте (его конфиге, собранном с помощью webpack init) уже есть Babel. О его дальнейшей настройке поговорим в следующих модулях.