DART: Что лучше всего подходит для настроек конфигурации

Интерпретируемые языки, такие как PHP, позволяют отдельному файлу, часто называемому config.php, содержать строковые константы, такие как имена серверов. Это облегчает развертывание, поскольку файл конфигурации просто не загружается при обновлении кода - имена серверов, например для транзакций REST, обычно различаются в среде развертывания.

В Dart, поскольку он скомпилирован, этот подход не работает. Если есть константы имени сервера, на которые есть ссылка в HTML через {{ }}, кажется, что код должен быть перекомпилирован перед развертыванием.

Есть ли способ указать строковые константы таким образом, чтобы избежать этого требования перекомпиляции?

2 ответа

Решение

Есть несколько вариантов, которые я могу придумать:

Одна хитрость - поместить конфигурацию в карту, указав имя хоста. Во время выполнения посмотрите конфигурацию на карте, используя window.location в качестве ключа. Это позволит запрограммировать конфигурацию в исходный код Dart, но при этом разрешить указание разных значений для разных сред.

Если вы хотите изменить конфигурацию после компиляции, вы можете встроить ее в виде JSON в исходный код HTML или загрузить через HTTP-запрос. (Это не использует константу в соответствии с запросом, однако по определению невозможно изменить константу после времени компиляции)

Итак, короткий ответ: "Ты не можешь" - на данный момент. Но команда Дартс знает об этом ограничении, и обсуждают это в дартланге согласно комментарию выше.

Другие вопросы по тегам