Назад к вопросам
Junior
108
questionbank
Как вы использовали линтер для JavaScript?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Использовал совместно с ESLint и Prettier для автоматического форматирования кода и проверки на стилевые ошибки, потенциальные баги и нарушения паттернов. Конфигурация обычно включала преднастроенные правила, например, airbnb-base или @typescript-eslint. Интегрировался с IDE (VS Code) для моментального фидбэка в процессе написания кода и сборочной системой (Webpack, Vite) при помощи соответствующих плагинов (eslint-webpack-plugin) для выполнения проверок перед сборкой или при коммитах (через lint-staged и husky).
// Пример файла .eslintrc.js
module.exports = {
env: {
browser: true,
es2021: true,
node: true,
},
extends: [
'airbnb-base',
'plugin:@typescript-eslint/recommended',
'prettier', // Отключает правила ESLint, конфликтующие с Prettier
],
parser: '@typescript-eslint/parser',
parserOptions: {
ecmaVersion: 12,
sourceType: 'module',
},
plugins: [
'@typescript-eslint',
'prettier',
],
rules: {
// Переопределение или добавление своих правил
'no-console': 'warn', // Предупреждение вместо ошибки для console.log
'import/no-unresolved': 'off', // Пример отключения правила (может понадобиться для алиасов путей)
'prettier/prettier': 'error', // Применение правил Prettier как ошибки ESLint
},
settings: {
'import/resolver': {
node: {
extensions: ['.js', '.jsx', '.ts', '.tsx'], // Учет расширений для импортов
},
},
},
};
В package.json обычно настраиваются скрипты для удобного запуска:
{
"scripts": {
"lint": "eslint './src/**/*.{js,jsx,ts,tsx}'",
"lint:fix": "eslint './src/**/*.{js,jsx,ts,tsx}' --fix",
"format": "prettier --check './src/**/*.{js,jsx,ts,tsx,css,scss,md,json}'",
"format:fix": "prettier --write './src/**/*.{js,jsx,ts,tsx,css,scss,md,json}'"
},
"devDependencies": {
"eslint": "^7.32.0",
"eslint-config-airbnb-base": "^14.2.1",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-import": "^2.24.2",
"eslint-plugin-prettier": "^4.0.0",
"@typescript-eslint/eslint-plugin": "^4.32.0",
"@typescript-eslint/parser": "^4.32.0",
"prettier": "^2.4.1",
"husky": "^7.0.0",
"lint-staged": "^11.1.2"
},
"lint-staged": {
"./src/**/*.{js,jsx,ts,tsx}": [
"eslint --fix"
],
"./src/**/*.{js,jsx,ts,tsx,css,scss,md,json}": [
"prettier --write"
]
}
}