Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

README.md

Документация библиотеки dotenv

Разбор файлов .env для OneScript: тот же файл конфигурации, что читают Docker Compose и инструменты других языков.

Назначение

Конфигурация приложения хранится в файле рядом с проектом, а не в исходном коде. Пароли и адреса не попадают в репозиторий, а окружения различаются одним файлом. Библиотека читает такой файл и переносит объявленные в нём переменные в окружение процесса, откуда их видит любой код, в том числе чужие библиотеки, ничего не знающие про .env.

# .env
DB_HOST=localhost
DB_PORT=5432
DB_URL=postgres://${DB_HOST}:${DB_PORT}/шоп
SECRET="ключ с # и пробелами"

Установка

opm install dotenv

Зависимостей времени выполнения нет.

Быстрый старт

#Использовать dotenv

DotEnv.Загрузить();   // читает ./.env

Сообщить(ПолучитьПеременнуюСреды("DB_URL"));   // postgres://localhost:5432/шоп

Уже установленные переменные окружения имеют приоритет: значения из файла их не затирают. Так переменные, заданные в CI или в консоли, всегда выигрывают у файла разработчика.

// Файл побеждает окружение
DotEnv.Загрузить(".env.test", Новый Структура("Перезаписывать", Истина));

// Отсутствие файла считать ошибкой
DotEnv.Загрузить(".env", Новый Структура("ОбязательныйФайл", Истина));

// Разбор без побочных эффектов
Значения = DotEnv.Разобрать("KEY=значение");
Настройки = DotEnv.ПрочитатьФайл("config/.env.example");

// Конфигурация структурой: обращение через точку
Конфигурация = DotEnv.ЗагрузитьВСтруктуру(".env");
Сообщить(Конфигурация.DB_HOST);

Разделы

Раздел Содержание
Публичный API Модуль DotEnv, сигнатуры методов, параметры, примеры
Формат файла Правила разбора: кавычки, комментарии, подстановка
Продуктовое описание Задача, сравнение с альтернативами, отличия от dotenv, ограничения
Выпуск релиза Порядок публикации новой версии
Примеры Запускаемые сценарии в каталоге examples/

Примеры

Каждый файл запускается из корня проекта и печатает результат.

oscript examples/Загрузка.os
oscript examples/Разбор.os
oscript examples/Приоритет.os
Пример Что показывает
Загрузка.os Три способа загрузки, поведение при отсутствии файла
Разбор.os Кавычки, комментарии, экранирование, подстановка ${ИМЯ}
Приоритет.os Кто побеждает при конфликте файла и окружения

Тесты

opm install --dev -l
oneunit execute -d ./tests