#ruby-on-rails #ruby #yaml #prettier #prettier-vscode
#ruby-on-rails #ruby #yaml #красивее #красивее-vscode
Вопрос:
В моем проекте есть файл YAML для NewRelic newrelic.yml
, в котором есть строка с кодом Ruby для настройки app_name
. Существующая конфигурация работает, и мне нужно отредактировать файл, но когда я пытаюсь выполнить yarn commit
сбой со следующей ошибкой, это для меня выглядит как более красивая ошибка.
Я пытался добавить #prettier-ignore
перед строкой, но это все равно приводит к сбою фиксации.
node_modules/prettier/index.js:13588
throw error;
^
SyntaxError: Nested mappings are not allowed in compact mappings (18:13)
17 | # Relic. For more details, see https://docs.newrelic.com/docs/apm/new-relic-apm/maintenance/renaming-applications
> 18 | app_name: <%= ENV["SERVER_ENV"] == 'staging' ? 'MyApp (Staging)' : 'MyApp' %>
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Мой редактор кода — VSCode, если это имеет значение.
Поэтому я хотел бы либо выяснить, почему # prettier-ignore
это не работает так, как указывают более красивые документы. Или выясните, как отформатировать вещи для передачи, что, очевидно, является предпочтительным вариантом.
Ответ №1:
Похоже, что Prettier не обрабатывает ERB в файлах YAML.
Я бы добавил все распространенные конфигурации в один блок, а затем повторно использовал бы этот блок с псевдонимами YAML.
common: amp;default_settings
license_key: 1234
log_lever: info
# ...
production:
<<: *default_settings
app_name: MyApp
staging:
<<: *default_settings
app_name: MyApp (Staging)
Комментарии:
1. Спасибо, я попробую это, кажется, что в большинстве руководств показано использование ERB для установки имен для разных сред из CONFIG_VARS и лицензионного ключа. Так что, возможно, было бы лучше, чтобы Красивее игнорировать весь файл. (Что является обломком, поскольку приятно убедиться, что остальное форматирование правильное).