«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Переменные среды: очень краткое введение в разработку JS.

Переменные среды: очень краткое введение в разработку JS.

Опубликовано 31 октября 2024 г.
Просматривать:115

Environment Variables: a very short intro for JS development

Эта статья представляет собой краткое исследование переменных среды для меня, отсюда и краткий стиль

Основы

  • терминал — это приложение, которое на самом деле представляет собой эмулятор терминала
  • Мы используем терминал, взаимодействующий с оболочкой
  • Оболочка может запускать процессы, например программу Javascript, с помощью другого приложения, например узла
    • например. оболочка -> узел -> index.js
  • Когда мы открываем терминал, в оболочке создается новый сесс
  • Этот сеанс имеет переменные, которые можно с ним связать (например, echo $USER печатает имя текущего пользователя)

узел

В узле доступ к переменным среды осуществляется через глобальный процесс.env

console.log(process.env.USER); // username
  • Приложения обычно получают доступ к секретам или данным, связанным с конфигурацией, через переменные среды.
    • например. процесс.env.DB_CONNECTION
    • Это полезно, поскольку мы хотим сохранить секреты в секрете, и не у каждого пользователя будут одинаковые потребности в настройке — это позволяет лучше разделить логику и конфигурацию

методы загрузки переменных

Есть несколько способов сделать эти переменные доступными для наших программ.

(1) сделать их доступными через командную строку:

Довольно просто — просто вызовите команду с переменной в командной строке.

DB_CONNECTION="postgresql://username:password@host:port/database_name" node index.js

(2) сохранение их в файле .env.

Файлы

.env состоят из KEYS и VALUES, которые разделены знаком равенства.

DB_CONNECTION="postgresql://username:password@host:port/database_name"

Эти файлы являются общими, и есть несколько способов сделать их доступными для вашего приложения.

Диренв

Используйте такой инструмент, как direnv, который загружает переменные из файла и делает их доступными в оболочке; это обычно устанавливается глобально.

По умолчанию direnv ищет файл .envrc, но он также может использовать .env, см. здесь, чтобы настроить его для этого.

дотенв

Используйте такой инструмент, как dotenv, который загружает переменные из файла и делает их доступными вprocess.env.

диренв против дотенв

У каждого метода есть свои плюсы и минусы.

Использование direnv не зависит от языка и означает на одну зависимость меньше, но это также означает, что потребителям вашего приложения нужен собственный способ загрузки переменных среды, если они не используют direnv;

Использование dotenv гарантирует, что потребители приложения смогут без проблем использовать файл .env, но при этом добавляется пакет только для того, чтобы сделать то, что оболочка может делать изначально.

флаг узла

Недавно в Node была включена поддержка (v20.6.0) для прямого использования файлов .env.

Необходимо использовать флаг

node --env-file=.env index.js

Как и dotenv, содержимое .env становится доступным вprocess.env.

Краткое содержание

  • переменные среды — это встроенная в оболочку технология
  • есть несколько разных способов загрузить их — напрямую, direnv, dotenv, node
  • direnv загружает переменные в вашу оболочку, но dotenv и node делают их доступными для вашего приложения только черезprocess.env
  • если вы используете node, вам, вероятно, следует использовать новый флаг --env-file
Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/charlesloder/environment-variables-a-very-short-intro-for-js-development-18j3?1 Если есть какие-либо нарушения, пожалуйста, свяжитесь с [email protected] удалить его
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3