Я совершенно новичок в VSCode, и это моя первая настройка. Я знаю, что это очень распространенная проблема, но я не смог найти для нее подходящего решения.
Это мое понимание до сих пор. Пожалуйста, поправьте меня, если я ошибаюсь.
Я хочу использовать ESLint для поиска ошибок в коде Javascript и Prettier для форматирования всех языков. Но, похоже, мы могли бы также отформатировать наш код javascript с помощью ESLint! Есть некоторые полезные правила, которые мне нравятся, и кажется, что у Преттиэра таких нет (space-in-parens).
Поэтому я решил использовать ESLint в качестве средства форматирования в Javascript. Теперь я вижу, что существует множество учебников по «Как интегрировать ESLint с Prettier» в сети. Идея состоит в том, чтобы расширить правила Преттиера с помощью плагина и добавить к нему те правила ESLint, которые задают c. Разумно!
Я получил следующие настройки. Пожалуйста, посмотрите мои настройки для использования ESLint и Prettier ниже:
мой файл конфигурации eslint:
module.exports = {
env: {
browser: true,
es6: true,
},
extends: ["prettier"],
globals: {
Atomics: "readonly",
SharedArrayBuffer: "readonly",
},
parserOptions: {
ecmaVersion: 2018,
sourceType: "module",
},
plugins: [
"prettier"
],
"rules": {
"space-in-parens": ["error", "always"],
"quotes": ["error", "single"],
"prettier/prettier": "error"
}
};
мой файл настроек пользователя:
{
"terminal.integrated.shellArgs.linux": [
"-l"
],
"remote.SSH.remotePlatform": {
"dev-all": "linux"
},
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
"eslint.alwaysShowStatus": true,
// turn it off for JS and JSX, we will do this via eslint
"[javascript]": {
"editor.formatOnSave": false
},
// tell the ESLint plugin to run on save
"editor.codeActionsOnSave": {
"source.fixAll": true
},
// Optional BUT IMPORTANT: If you have the prettier extension enabled for other languages like CSS and HTML, turn it off for JS since we are doing it through Eslint already
"prettier.disableLanguages": [
"javascript"
]
}
и, наконец, мой пакет. json file:
{
"name": "web",
"version": "1.0.0",
"description": "",
"main": "",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"devDependencies": {
"eslint": "^6.8.0",
"eslint-config-prettier": "^6.10.1",
"eslint-plugin-prettier": "^3.1.3",
"prettier": "^2.0.4"
}
}
Теперь проблема в том, что всякий раз, когда я сохраняю свой код javascript, форматирование переключается! например, при первом сохранении у меня есть «одинарная кавычка», а при следующем сохранении у меня «двойная кавычка». Я думаю, что мое понимание всей идеи неверно. Не могли бы вы объяснить это для меня и сказать, как это исправить. Я трачу так много времени, чтобы понять это. Кстати, я также установил два расширения в vscode: "ESLint" и "Prettier".