Я пытаюсь следовать учебнику, и он говорит:
Есть несколько способов загрузки учетных данных.
- Загружен из переменных среды,
- Загружен из файла JSON на диске,
Ключи должны быть следующими:
USER_ID, USER_KEY
... Это означает, что если вы правильно установили переменные среды, вам вообще не нужно управлять учетными данными в вашем приложении.
Исходя из некоторого Google, кажется, что мне нужно установить переменные в process.env
? Как и где я могу установить эти учетные данные? Пример пожалуйста.
источник
fish
вместоbash
, вы должны использовать:env USER_ID=239482 my_command
. Например, для установки переменных среды дляdebug
библиотеки node.js :env DEBUG='*' node some_file.js
fishshell.com/docs/current/faq.html#faq-single-envenv DEBUG=* node some_file.js
dotenv
, поскольку он прочитает ваш.env
файл и применит его.Я настоятельно рекомендую заглянуть в пакет Dotenv.
https://github.com/motdotla/dotenv
Это похоже на библиотеку, предложенную в ответе @Benxamin, но она намного чище и не требует скриптов bash. Также стоит отметить, что кодовая база популярна и ухожена.
В основном вам нужен файл .env (который я настоятельно рекомендую игнорировать в вашем git / mercurial / etc):
Затем как можно раньше вставьте в файл ввода приложения следующую строку:
Boom. Выполнено. 'process.env' теперь будет содержать переменные выше:
Файл .env не требуется, поэтому вам не нужно беспокоиться о том, что ваше приложение упадет в его отсутствие.
источник
Просто укажите значения env в командной строке
источник
Вы можете установить переменную среды через глобальную переменную процесса следующим образом:
Работает на всех платформах.
источник
Если вам нужна опция управления, попробуйте пакет envs npm. Возвращает значения среды, если они установлены. В противном случае вы можете указать значение по умолчанию, которое сохраняется в глобальной переменной объекта по умолчанию, если оно отсутствует в вашей среде.
Использование .env ("dot ee-en-vee") или файлов окружения хорошо по многим причинам. Люди могут управлять своими собственными конфигами. Вы можете развертывать различные среды (dev, stage, prod) в облачных сервисах с их собственными настройками среды. И вы можете установить разумные значения по умолчанию.
Внутри вашего
.env
файла каждая строка представляет собой запись, как в следующем примере:Вы не должны включать
.env
в свой репозиторий контроля версий (добавьте его в свой.gitignore
файл).Чтобы получить переменные из
.env
файла в вашу среду, вы можете использовать скрипт bash, чтобы сделать эквивалентexport NODE_ENV=development
прямо перед запуском приложения.Тогда это идет в вашем приложении JavaScript:
источник
Это зависит от вашей операционной системы и вашей оболочки
В linux с оболочкой bash вы создаете переменные окружения следующим образом (в консоли):
Для получения дополнительной информации о переменных окружения в Ubuntu (например):
Переменные окружения в Ubuntu
источник
Как сказал ctrlplusb, я рекомендую вам использовать пакет
dotenv
, но другой способ сделать это - создать файл js и установить его на первой строке вашего сервера приложений.env.js:
app.js:
источник
Windows-пользователи: обратите внимание! Эти команды рекомендуются для Unix, но в Windows они являются только временными. Они устанавливают переменную только для текущей оболочки, как только вы перезапустите компьютер или запустите новую терминальную оболочку, они исчезнут.
SET TEST="hello world"
$env:TEST = "hello world"
Чтобы установить постоянную переменную среды в Windows, вместо этого вы должны использовать один из следующих подходов:
A) .env файл в вашем проекте - это лучший метод, потому что он будет означать, что вы можете переместить ваш проект в другие системы без необходимости устанавливать переменные среды на этой системе, так как вы можете запустить свой код.
Создайте
.env
файл в корневой папке вашего проекта с содержимым:TEST="hello world"
Напишите некоторый код узла, который будет читать этот файл. Я предлагаю установить dotenv (
npm install dotenv --save
), а затем добавитьrequire('dotenv').config();
во время установки кода вашего узла.process.env.TEST
Env-файлы хорошо хранят API-ключи и другие секреты, которые вы не хотите иметь в своей базе кода. Просто не забудьте добавить его в свой
.gitignore
.Б) Использовать Powershell - это создаст переменную, которая будет доступна в других терминалах. Но будьте осторожны, переменная будет потеряна после перезагрузки компьютера.
[Environment]::SetEnvironmentVariable("TEST", "hello world", "User")
Этот метод широко рекомендуется на форумах Windows, но я не думаю, что люди знают, что переменная не сохраняется после перезагрузки системы ....
C) Используйте Windows GUI
источник
Шаг 1: Добавьте переменные среды в соответствующий файл. Например, может быть вызвана ваша промежуточная среда
.env.staging
, которая содержит переменные средыUSER_ID
иUSER_KEY
специфична для вашей промежуточной среды.Шаг 2: Добавьте в свой
package.json
файл следующее:затем вызовите его в вашем сценарии развертывания следующим образом:
Супер простая настройка и работает как шарм!
Источник: https://medium.com/@tacomanator/environments-with-create-react-app-7b645312c09d
источник
Для пользователей Windows этот вопрос переполнения стека и верхний ответ весьма полезны для того, как установить переменные окружения через командную строку
Как я могу установить NODE_ENV = производство в Windows?
источник
Наткнулся на хороший инструмент для этого.
узел-ENV-файл
Анализирует и загружает файлы среды (содержащие экспорт переменных ENV) в среду Node.js, т.
process.env
Е. Использует этот стиль:источник
Как расширение ответа @ctrlplusb,
я бы посоветовал вам также взглянуть на
env-dot-prop
пакет.Это позволяет вам устанавливать / получать свойства с
process.env
помощьюdot-path
.Давайте предположим, что ваш
process.env
содержит следующее:Затем вы можете манипулировать переменными среды следующим образом:
Это поможет вам проанализировать переменные среды и использовать их в качестве объекта конфигурации в вашем приложении.
Это также поможет вам реализовать 12-факторную конфигурацию .
источник
Очень хороший способ сделать переменные окружения, которые я успешно использовал, ниже:
А. Иметь разные конфигурационные файлы :
dev.js // здесь есть все переменные окружения только для разработки
. Файл содержит:
stage.js // здесь есть все переменные среды только для разработки
qa.js // здесь есть все переменные окружения только для тестирования qa
Файл содержит:
ПРИМЕЧАНИЕ : значения в основном меняются в зависимости от среды, но ключи остаются прежними.
ты можешь иметь больше
z__prod.js // здесь есть все переменные среды только для производства / реального времени
ПРИМЕЧАНИЕ. Этот файл никогда не связывается для развертывания
Поместите все эти файлы конфигурации в папку / config /
ПРИМЕЧАНИЕ . Название prod отличается от других, так как оно будет использоваться не всеми.
B. Установите переменные среды OS / Lambda / AzureFunction / GoogleCloudFunction из файла конфигурации
Теперь в идеале эти переменные конфигурации в файле должны идти как переменные среды ОС (или переменные функции LAMBDA, или переменные функции Azure, функции Google Cloud и т. Д.)
Итак, мы пишем автоматизацию в ОС Windows (или другой)
Предположим, мы пишем bat-файл « setenv », который принимает один аргумент, то есть среду, которую мы хотим установить
Теперь запустите " Setenv Dev "
a) Он принимает входные данные из переданной аргументной переменной (пока 'dev')
b) читает соответствующий файл ('config \ dev.js')
c) устанавливает переменные среды в ОС Windows (или другой)
Например,
Содержимое setenv.bat может быть:
Содержимое setenv.js может быть:
Вот и все , ваша среда готова к использованию.
Когда вы делаете ' setenv qa ', все переменные окружения qa будут готовы к использованию из qa.js и готовы к использованию одной и той же программой (которая всегда запрашивает process.env.someEnvKey1, но полученное значение - qa one).
Надеюсь, это поможет.
источник
Облегчи свою жизнь с помощью dotenv-webpack . Просто установите его
npm install dotenv-webpack --save-dev
, а затем создайте.env
файл в корне вашего приложения (не забудьте добавить его.gitignore
перед вамиgit push
). Откройте этот файл и установите там некоторые переменные среды, например:Теперь в настройках вашего веб-пакета добавьте:
Только
const Dotenv = require('dotenv-webpack');
,plugins: [new Dotenv()]
и, конечноmodule.exports = webpackConfig; // Export all custom Webpack configs.
, требуется. Однако в некоторых случаях вы можете получить некоторые ошибки. Для них у вас есть решение, а именно, как вы можете исправить определенную ошибку.Теперь, где бы вы хотите , вы можете просто использовать
process.env.ENV_VAR_1
,process.env.ENV_VAR_2
,process.env.ENV_VAR_3
в вашем приложении.источник
Я получил неопределенный после установки системной переменной en. Когда я помещаю APP_VERSION в User env var, я могу отобразить значение из узла через process.env.APP_VERSION
источник
Если вы используете mac / linux и хотите получить локальные параметры для машины, которую вы используете, это то, что вы будете делать:
источник