TLDR;

Если у вас есть какая-то переменная в файле .env (например, DUDE=Joe), которую вы хотите использовать в файле package.json (возможно, в сценарии), и вы просто хотите сделать это как можно скорее, не беспокоясь о других проблемах, вот что вам нужно сделать:

  1. установите эти пакеты:

npm install dotenv-cli cross-var

2. используйте переменную следующим образом:

3. запустите скрипт, чтобы проверить, работает ли он:

npm run sayhi

это должно напечатать (эхо) это в вашей консоли: hi Joe

Вот и все! Если есть более важные вещи, к которым нужно вернуться, пока! Если вы хотите увидеть, что происходит, что ж, давайте сделаем это! 🤓

Что происходит? 🤨🤔

Во-первых, давайте поговорим об установленных нами пакетах:

  • dotenv-cli: загружает переменные среды из вашего .env файла. Он включает в себя двоичный файл dotenv, который мы используем в сценарии.
  • cross-var: позволяет использовать один синтаксис скрипта для работы в Mac OS X/Linux (bash) или Windows.

Хорошо, давайте поговорим о других вещах:

  • --: означает конец опций (здесь опции dotenv), поэтому мы можем свободно использовать cross-var опции.

🤓 На самом деле нам это не нужно для этого скрипта! Я просто поместил его туда на тот случай, если вы используете другие команды, у которых есть собственные параметры (возможно, флаг для указания порта и т. д.). Вы можете оставить его там, чтобы быть в безопасности!

  • %DUDE%: это имя переменной в нашем файле .env, которое выглядит примерно так:
DUDE=Joe

😰 Не забудьте использовать % символов до и после имени переменной!

  • Последняя вещь. Если ваши переменные хранятся в .env.local или подобных файлах, вам нужно использовать параметр -e следующим образом:

dotenv -e .env.local

ИЛИ, если у вас есть несколько файлов env:

dotenv -e .env2 -e .env3

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

источники