2016-01-07 3 views
4

Поскольку мы не хотим, чтобы важные данные в коде проекта, включая файл package.json, с использованием переменных окружения были бы логичным выбором, на мой взгляд.Как использовать переменные среды в package.json

Пример package.json:

"dependencies": { 
    "accounting": "~0.4.0", 
    "async": "~1.4.2", 
    "my-private-module":"git+https://${BB_USER}:${BB_PASS}@bitbucket.org/foo/bar.git" 

Возможно ли это?

(Вопрос в не если это мудрый или не хорошо, просто , если это возможно)

С уважением! не

I.

ответ

1

Нет это невозможно, так как НПМ не обрабатывает любые строковые значения, как и любой вид шаблонов.

Возможно, было бы лучше использовать git+ssh (если ваш провайдер поддерживает его) с помощью агента ssh.

1

Нет, это невозможно. Вы должны получить доступ к репо с помощью git+ssh и сохранить закрытый ключ в ~/.ssh.

Ваша строка будет выглядеть:

"my-private-module":"git+ssh://[email protected]/foo/bar.git" 

, который не содержит ничего чувствительного.

+0

Кроме того, вы даже можете использовать другой ключ SSH и SSH конфигурации для этой цели, а не обычный id_rsa. – Zlatko

+0

Да, я бы порекомендовал это. (Я имел в виду, что с «store * a * private key», но может быть яснее.) –

+0

Спасибо! Да, это Heroku: -S. Думаю, это должен быть собственный сборник. В конце концов, докер станет конечной средой. Нужно это сделать! С уважением! – kaasdude

0

Вы можете использовать значения среды, чтобы ввести в вашей package.json так:

Любые переменные окружения, которые начинаются с npm_config_ будет интерпретироваться как параметр конфигурации. Например, при установке npm_config_foo = bar в вашей среде будет установлен параметр конфигурации foo. Любые конфигурации среды, которым не присвоено значение, присваивается значение true. Значения Config нечувствительны к регистру, поэтому NPM_CONFIG_FOO = bar будет работать одинаково.

https://docs.npmjs.com/misc/config#environment-variables

Смежные вопросы