Файл конфигурации npm не читает переменные окружения - PullRequest
0 голосов
/ 06 апреля 2019

Я не могу получить файл моего проекта .npmrc для распознавания любой из переменных среды, установленных в трех различных областях (проект, пользователь, глобальный).

Единственный способ установкизакрытый модуль заключается в жестком кодировании ключа api в файл .npmrc, что, очевидно, недопустимо, поскольку git отслеживает .npmrc.

Я попытался создать переменные среды в виде npm-config docs предложить, то есть:

  • в файле проекта .env, где и файл .npmrc, и файл .env являются родственными элементами package.json, то есть: fontawesome_pro_token=ABC123
  • в файле конфигурации пользователя, например: $ npm set fontawesome_pro_token ABC123
  • в файле глобальной конфигурации, например: $ npm set fontawesome_pro_token ABC123 --global

Когда я ссылаюсь на переменную env в проекте.npmrc файл, то есть:

@fortawesome:registry=https://npm.fontawesome.com/
//npm.fontawesome.com/:_authToken=${fontawesome_pro_token}

Я получаю эту ошибку:

Error: Failed to replace env in config: ${fontawesome_pro_token}

Когда я удаляю фигурные скобки вокруг имени переменной (как этот ответ переполнения стека предлагает), я получаю следующую ошибку:

npm ERR! 401 Unauthorized

Любой совет, как настроить npm для чтения переменных env?


Между прочим - если при развертывании частных модулей в Netlify, Netlify ожидает, что файл .npmrc будет использовать фигурные скобки для синтаксиса env var, см. this gist .Я могу подтвердить, что использование синтаксиса фигурных скобок в файле npmrc для git watched вместе с установкой env var build в панели администратора проекта netlify действительно работает.

1 Ответ

0 голосов
/ 01 мая 2019

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

@fortawesome:registry=https://npm.fontawesome.com/ //npm.fontawesome.com/:_authToken=${FONTAWESOME_PRO_TOKEN}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...