В моем приложении Nuxt, где установлены и включены ESlint и Prettier, я переключился на Visual Studio Code.
Когда я открываю файл .vue, нажимаю CMD + Shift + P и выбираю Форматировать документ, мой файл вообще не получает отформатированный.
Мой .prettierrcнастройки:
{
"tabWidth": 2,
"semi": false,
"singleQuote": true
}
У меня так много строк исходного кода, что я не могу их форматировать вручную. Что я делаю неправильно?
Я бы добавил к .prettierrc строчку "disableLanguages": []. Документы говорят, что это изменение требует перезапуска
Также есть проблема для v1.27.2 с примечанием, что такая же конфигурация работала для v.1.23
Действительно, у меня VSCode 1.27.2
Проголосовал за b / c, просто нажав CMD + Shift + P, затем Форматировать документ, а затем выбрав Prettier в качестве средства форматирования по умолчанию, помогло мне: D
Если у вас ничего не работает, обязательно ознакомьтесь с моим ответом: stackoverflow.com/a/64273353/4298115
Для меня это не работало даже после внесения всех изменений в настройки конфигурации. Затем я понял, что пытаюсь отформатировать фрагмент кода var x = "test";, записанный в файле HTML, тогда как мне следовало записать его в файл *.JS. Когда я записал JS-код в JS-файл, он был отформатирован в var x = 'test'.
Попробуйте отключить красивее -> перезагрузить vscode -> включить красивее



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Это проблема не самого Prettier, а prettier-vscode, расширения VSCode. Согласно его документация, форматирование Vue по умолчанию отключено:
prettier.disableLanguages (default: ["vue"])
A list of languages IDs to disable this extension on. Restart required. Note: Disabling a language enabled in a parent folder will prevent formatting instead of letting any other formatter to run
В этом случае для включения следует установить "prettier.disableLanguages": []. И поскольку это конфигурация расширения, вы должны сделать это в файле настроек VSCode, а не в .prettierrc.
Иногда prettier перестает работать, когда в коде есть синтаксические ошибки. Вы можете просмотреть ошибки, нажав кнопку Икс в правом нижнем углу рядом с Красивее.
Иногда Prettier не отображается внизу, но другое расширение (например, ESLint) будет, и если вы нажмете на него, появится раскрывающийся список для выбора других инструментов ... включая Prettier. Выберите его, чтобы увидеть журнал Prettier (и после этого Prettier должен появиться в лотке).
Большое спасибо! Мне потребовалось два часа, чтобы безрезультатно разобраться, пока я не увидел ваш ответ. Что-то такое простое.
Вы спасли мою жизнь. Я забыл поставить точку перед файлом конфигурации, поэтому по умолчанию он использовал конфигурацию VS Code.
Я не вижу prettier справа внизу. У меня "editor.defaultFormatter": "esbenp.prettier-vscode", и установил доп. Хочу формат PowerShell.
вы можете попробовать добавить этот раздел в свой файл VS Code settings.json?
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
},
Так было и со мной. Форматировщик по умолчанию был установлен на правильный, форматирование при сохранении было отключено.
Иногда при автоматическом обновлении плагинов необходимые файлы, используемые Prettier, могут отсутствовать.
Отметьте этот путь, если здесь есть файлы или папка пуста
C: \ Users \ ИМЯ ВАШЕГО ПОЛЬЗОВАТЕЛЯ \ .vscode \ extensions \ esbenp.prettier-vscode-2.2.2 \ out
Если отсутствует удалить и переустановить красивее
1. Использование другого расширения prettier не работает для меня, я просто использую другое расширение VSCODE с именем PrettierNow, я думаю, это поможет, сделано для меня.
2. Из последних обновлений prettier вам необходимо добавить файл .prettierrc в корень вашего проекта, если вы хотите придерживаться prettier.
Пример .prettierrc:
{
"tabWidth": 4,
"singleQuote": true,
"semi": false
}
Prettier также может форматировать ваши файлы при сохранении.
Однако установка и включение не приводят к работе.
Вы должны проверить "форматировать при сохранении" в VSCode: Настройка >> Пользователь >> Текстовый редактор >> Форматирование
также alt (command) + shift + f предназначен для форматирования без сохранения.
Обратите внимание, что помимо включения «Форматировать при сохранении» вам также часто необходимо указывать средство форматирования по умолчанию.
Следуя каждому решению сверху, он работал на этом этапе :), большое спасибо
Как я разобрался после огромного разочарования из-за того, что Prettier перестал работать в VSCode.
VS Code -> View -> Command Palette и введите: Format Document WithConfigure Default Formatter..., а затем выберите Prettier - Code formatter.Это волшебным образом решило мою проблему.
В зависимости от вашего случая это может вам помочь ...
Я настроил Prettier как стандартное средство форматирования в настройках, но он просто не работал. Это сработало. Сделал мой день!
То же самое здесь, но мне пришлось отменить выбор средства форматирования по умолчанию, а затем выполнить действие, которое вы упомянули снова, чтобы это сработало.
Не уверен, где найти Configure Default Formatter, но я использовал File-> Settings-> Text Editor-> Default Formatter
Когда я выбираю средство форматирования по умолчанию как Prettier, оно форматирует этот файл, но после этого не работает при сохранении. У меня есть опция сохранения, но все же. Мне приходилось снова и снова выбирать форматтер по умолчанию. Любое решение
@HimanshuTariyal Это должно сработать для вас, но не стесняйтесь проверить мое решение: stackoverflow.com/a/64273353/4298115
Это какая-то проблема в vscode? Это сработало и для меня
А как насчет того, чтобы сделать красивее И eslint внести изменения в код?
@jrypkahauer, это в основном мой ответ. ☺️
Мой VSCode внезапно добавляет пустую строку в конец файла, когда я сохраняю. Я отключил все параметры, чтобы добавить новую строку. Я даже удалил расширение Prettier. Но когда я нажимаю ctrl + s, он по-прежнему добавляет новую пустую строку в конец файла. Кто-нибудь знает почему?
Откатился красивее на 1.7.3 и поправил
Включение "Форматировать при сохранении" в VSCode: Настройка >> Пользователь >> Текстовый редактор >> Форматирование у меня сработало! ?
Я не использую Vue, но возникла та же проблема.
У меня уже были настройки
Editor: default formatter красивееEditor: Format on Save в true.eslintrc.js и .prettierrc
Но ничего не вышло.Решение моей проблемы заключалось в том, что я все настроил правильно, за исключением того, что мне нужно было:
Command + Shift + pformat document withConfigure Default Formatter...Prettier по умолчанию.Я не знаю, почему Editor: Format on Save, установленного на true, было недостаточно.
Мне нужно было выбрать модуль форматирования по умолчанию, используя описанные выше шаги, чтобы он работал.
Если у вас уже есть конфигурация ESlint, вам, вероятно, следует использовать Prettier через ESlint. Вот мой ответ о том, как этого добиться.
Для меня это было связано с ESlint, который также работает с Prettier. Eslint не работал (локальная установка против глобального конфликта установки), что сломало Prettier.
Как решить это. У меня проблема, когда Eslint запрашивает новую строку при нажатии клавиши ввода и сохранения, она возвращается в ту же позицию, и снова начинает появляться ошибка.
Если у вас уже есть конфигурация ESlint, вам, вероятно, следует использовать Prettier через ESlint. Вот мой ответ о том, как этого добиться.
Если выполнение того, что упомянул @Simin Maleki, не решит эту проблему для вас, есть вероятность, что ваш модуль форматирования по умолчанию не установлен:
File > Preferences > Settings > Search for "default formatter"
Убедитесь, что в вашем поле Editor: Default Formatter указано не null, а скорее esbenp.prettier-vscode, и что все указанные ниже языки отмечены галочками. Это устранило мою проблему.
Также убедитесь, что ваш формат при сохранении включен:
На месте должен быть ответ
Случайно мой vscode перестает работать с красивее после нескольких месяцев правильной работы, не знаю, почему это исправляет: молитесь:
@ncubica Точно такая же вещь произошла со мной, и я был очень сбит с толку, так как не сделал ничего, чтобы вызвать проблему. Пришлось немного покопаться, но, наконец, нашел это и пришлось поделиться. Рад, что у вас работает :)
@Antonio Без проблем, рад, что смог помочь!
Я сделал это, а также попробовал решение от @miha, но безрезультатно. Наконец удалил / переустановил, и это сработало
Потрясающий брат ...!
Для того, чтобы это работало, потребовалась пара подводных камней: 1. Remote необходимо настроить для более красивой работы, если вы используете эти функции, и 2. Мне пришлось перезапустить vscode, чтобы это сработало.
Не забудьте включить "editor.defaultFormatter" в настройках VSCode. В моем случае он был нулевым, и, следовательно, даже "editor.formatOnSave", похоже, не решал проблему.
Что это добавляет к остальным 4 ответам, в которых упоминается то же самое?
Если ни один из других ответов не работает, убедитесь, что в вашем рабочем каталоге не существует конфликтующей более красивой конфигурации .prettierrc, или проверьте наличие .prettierignore, чтобы убедиться, что файлы / папки не игнорируются.
В Windows:
Мы можем открыть файл ниже, используя:
Start > Run
Путь файла:
%AppData%\Code\User\settings.json
Изменять Из:
"[javascript]": {
"editor.defaultFormatter": "vscode.typescript-language-features"
},
К:
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
Примечание:
Спасибо. Принятое решение сработало для меня. Но, возможно, ваш отзыв поможет другим. Спасибо, что поделились информацией
@BillalBegueradj Правда, у меня не сработало принятое, и я потратил около 1 часа, поэтому опубликовал этот. Возможно, это более новая проблема, с которой мы столкнемся в 2020 году.
Ваше решение - это «неграфический» подход к моему ответу: stackoverflow.com/a/64273353/4298115
@lbragile Я не мог сделать это с помощью графического интерфейса, следовательно, решение выше. В частности, это лучший способ, когда у нас есть несколько форматеров для разных языков, нет времени тратить зря, когда мы можем скопировать и вставить одну строку, открыв один файл.
Как добавить в macos?
@MalithKuruppu Это также работает на macOS. Вам просто нужно нажать cmd + p и выбрать «Preferences: Open Settings (JSON)», чтобы перейти к файлу settings.json.
Недавно у меня возникла та же проблема, что Prettier не форматирует код автоматически при сохранении. Проверяя Prettier, я увидел ошибку: Неверное значение "arrowParens". Ожидал «всегда» или «избегать», но получил true.
Когда я щелкнул по этой ссылке, появилось сообщение об ошибке:

Оказалось, что у меня тоже установлен Prettier Now. В моем файле конфигурации это логическое значение. После удаления Prettier Now все работает нормально.
Перейдите в Управлять (находится в левом нижнем углу) -> Настройки -> вкладка Пользователи -> Текстовый редактор -> Форматирование -> проверьте формат при сохранении
если не работает, закройте и снова откройте редактор vscode
Для меня проблема заключалась в файлах HTML, форматирование которых однажды перестало работать. У меня был настроен Форматировать при сохранении, который работал во всех файлах, кроме HTML.
Затем я понял, что экспериментально установил Форматировать в режиме сохранения на modification вместо file и забыл об этом. Это привело к тому, что в файлах HTML ничего не отформатировалось, что удивительно даже с моими изменениями. Установка обратно на file решила проблему.
у вас могут быть проблемы, несмотря на все эти настройки. В этом случае, как указывалось в предыдущем ответе, было бы неплохо проверить более красивое уведомление в нижней строке состояния в VSCode.
При нажатии на этот статус панель вывода должна сообщить о проблеме в файле HTML. Для меня проблема заключалась в том, что у меня был div внутри тега p, против которого, как я полагаю, выступают соглашения prettier / VSCode. Когда я удалил его (и в сочетании со всеми вышеперечисленными настройками, а именно средство форматирования по умолчанию и форматировать при сохранении), я стал красивее работать.
.prettierrc не требуется, если вы не хотите переопределить настройки VSCode.
Спасибо, ты спас мне день.
Это был мой случай! Большое спасибо.
Проверьте, есть ли файл .vscode / settings.json в каталоге вашего проекта (рабочая область). В моем случае кто-то проверил этот файл:
{
"editor.formatOnSave": false
}
Решение: удалите файл (удалите его также из системы управления версиями) и добавьте .vscode/ в .gitignore (если вы используете git).
В моем случае мне пришлось сделать следующее:
npm install --save-dev --save-exact prettier prettier-plugin-custom)и вуаля, все заработало.
КОНЧИК: Чтобы убедиться, что установка прошла успешно, я проверил версию:
npx prettier --version
Это сработало для меня. У меня уже был установлен prettier глобально, но он не работал. Если бы мне пришлось угадывать, это могла быть проблема WSL.
Я попытался включить «Форматирование при сохранении» и установить «Задержку автосохранения» на 0. Это сработало, так что я думаю, вы тоже можете попробовать это.
Обновлено: вы можете увидеть их, выполнив следующие действия.
Manage(The gear Icon bottom left)
Settings(Inside the manage dropdown list)
- Search for
Format On Saveand enable it(check the box)
- Scroll down and look for
Auto Save Delayand set it to0
Проверьте requirePragma в .prettierrc, он говорит, что вам нужно добавить комментарий верхнего уровня для этого файла, который будет отформатирован
удалите это правило, и оно должно работать
Если Prettier автоматически форматирует все остальные файлы, кроме файлов HTML, при сохранении:
Нажмите Cmd + P или Ctrl + P, чтобы открыть палитру команд, и введите в нее следующий текст:
> open settings
Щелкните Preferences: Open Settings (JSON) в раскрывающемся списке предложений.
Внутри файла settings.json проверьте, существует ли ключ "[html]". Если ключ существует и его значение указывает на использование другого расширения форматирования, установленного в Visual Studio Code, вам следует сбросить его, чтобы использовать Красивее.
"[html]": {
"esbenp.prettier-vscode"
}
Например, иногда значение ключа "[html]" может быть "remimarsal.prettier-now", если у вас установлено расширение Prettier Now.
Если у вас не установлено другое расширение форматирования, кроме Prettier, вы также можете полностью удалить ключ "[html]" из файла settings.json.
Есть несколько синтаксисов, которые prettier не может разобрать. ?? - один из них. После удаления символа моя красотка сработала как шарм. Вам следует взглянуть на вывод расширения Prettier в vscode. Это должно указывать на строку и синтаксис, которые вызывают проблемы при правильном форматировании.
В некоторых случаях, когда prettier предоставляется в качестве зависимости, вам может потребоваться установить его до того, как prettier vscode распознает его с помощью одной из следующих команд, в зависимости от используемого вами диспетчера пакетов
npm i или yarn
отключить и включить расширение prettier решает мою проблему
Если все остальные конфигурации верны, это поможет.
Не могу поверить, что это было ... Пытался исправить это почти ЧАС. Если бы были установлены vs расширения, установлены пакеты npm, настройка settings.json, eslintrc был в порядке, попытался переключить настройки, перейти в панель настроек, все ... Я просто поражен этим, так как я попытался «выключить его и on again "во всех остальных отношениях, и настройки, казалось, применялись мгновенно ...
Похоже, моя проблема была вызвана обновлением моей версии node. Это устранило проблему.
У меня тоже сработало использование Developer: Reload Window из палитры команд.
Это то, что сработало для меня (мой форматировщик по умолчанию уже был настроен на Prettier)
defaultPrettier.To перезапустить vscode Откройте палитру команд (Ctrl + Shift + P) и выполните команду: Reload Window, спасибо!
Если вы установили все, что можно сделать в разделе «Настройки», а Prettier не работает. Попробуйте установить через эту командную строку.
npm install --save-dev prettier
Несмотря на то, что npx prettier --version работает, у меня не было автоматического форматирования, пока я не запустил команду install в этом ответе. (Я использовал yarn, но результат тот же.)
Хорошо, вместо того, чтобы давать руководство по использованию Расширение VScode Prettier, я лучше объясню, как полагаться на ESlint и иметь оба мира: проверка правильности вашего кода (ESlint), а затем его форматирование (Prettier).
Начнем сначала с установки Расширение ESlint и только его, НЕ НАДО установим Prettier.
Я настоятельно рекомендую его для приложений Vue2 (то, что Nuxt работает на сегодняшний день), вы можете найти его ниже. Это позволит быстро и просто ESlint (+ Prettier) любые файлы .vue.
Когда это будет сделано, войдите в Command Palette с помощью ctrl + shift + p (Windows / Linux) или cmd + shift + p (Mac) и введите Preferences: Open Default Settings (JSON).
Там у вас должно получиться что-то вроде этого
{
"workbench.colorTheme": "Solarized Dark", // example of some of your own configuration
"editor.codeActionsOnSave": {
"source.fixAll": true,
},
"eslint.options": {
"extensions": [
".html",
".js",
".vue",
".jsx",
]
},
"eslint.validate": [
"javascript",
"javascriptreact",
"typescript",
"typescriptreact",
"html",
"vue",
],
}
Чтобы проверить, работает ли мое решение, загрузите этот Репозиторий Github, получите последнюю стабильную версию Node (например, 14) и запустите yarn, чтобы она заработала. В противном случае просто откройте VScode.
Это репо также можно использовать для двойной проверки правильности настройки вашего репозитория, просмотрев там мои файлы!
Затем вы можете получить доступ к любому файлу .js или .vue и увидеть там проблемы (палитра команд: Problems: Focus on Problems View). nuxt.config.js и /pages/index.vue - хорошие примеры, вот файл index.vue.
Вы можете видеть, что у нас есть несколько вещей, которые можно исправить с помощью Prettier, но у нас также есть ошибка eslint(vue/require-v-for-key). Решение доступно в виде комментария чуть ниже, кстати.
PS: если вы хотите иметь встроенные предупреждения / ошибки ESlint, как на скриншоте, вы можете установить Линза ошибки, это потрясающее расширение, если вы хотите избавиться от ошибок.
Сохраните этот файл, и вы должны увидеть, что все автоматически исправляемые вещи сделаны за вас. Обычно это в основном проблемы с Prettier, но иногда это также может быть ESlint. Поскольку у нас есть правила ESlint от Nuxt, вы также получите несколько хороших практик прямо из коробки!
Тада, работает! Если нет, прочтите раздел в конце моего ответа.
Вы можете запустить npx create-nuxt-app my-super-awesome-project и выбрать там несколько вещей, наиболее важным из которых, конечно же, является Linting tools: Eslint + Prettier (нажмите пробел, чтобы выбрать одну из них).
Предупреждение: на сегодняшний день необходимо сделать дополнительный шаг, чтобы ESlint + Prettier работал правильно, как показано в этом Проблема с Github. Исправление должно быть выпущено довольно скоро, тогда приведенная ниже конфигурация больше не понадобится!
Чтобы исправить это, запустите yarn add -D eslint-plugin-prettier и дважды проверьте, что ваш файл .eslintrc.js выглядит следующим образом
module.exports = {
root: true,
env: {
browser: true,
node: true
},
parserOptions: {
parser: '@babel/eslint-parser',
requireConfigFile: false
},
extends: [
'@nuxtjs',
'plugin:prettier/recommended', // this line was updated
'prettier'
],
plugins: [
],
// add your custom rules here
rules: {}
}
Затем вы можете заставить его работать нормально, как указано выше. Сохраните файл, и он должен запустить ESlint, а затем Prettier один за другим!
Command Palette и ESLINT: restart ESLint Server или даже Developer: Reload Window
Кажется, что по умолчанию для более красивого prettier.disableLanguages установлено значение
["vue"].