Как установить env var для использования .npmrc

Мне нужен модуль в моем проекте для загрузки частного пакета npm. Для этого я использую файл .npmrc для предоставления доступного только для чтения токена, необходимого для загрузки пакета. Чтобы токен, предоставленный npm, не попал в файл, я хочу добавить его в качестве переменной среды и позволить ему расширяться в файле. Например:

# .npmrc
//registry.npmjs.org/:_authToken=${NPM_TOKEN}

Я не могу понять, как добавить этот NPM_TOKEN в env до того, как на него будет ссылаться установка. Я пробовал использовать сценарий предварительной установки npm:

"preinstall": "NPM_READ_ONLY_TOKEN=my_token_goes_here_foo_bar"**

Но я все равно получаю ту же ошибку:

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

Я попробовал протестировать с помощью команды echo, чтобы увидеть, запускается ли preinstall перед расширением переменной .npmrc, но, по-видимому, этого не происходит. Я бы получил сообщение об ошибке и не увидел бы свой журнал эхо. Кажется, мне здесь чего-то не хватает.

Я знаю, что размещение моего токена в package.json препятствует извлечению токена из файла .npmrc. На самом деле я использую службу, которая предоставляет службы конфигурации env, которые я бы использовал для запуска команды и получения необходимого токена. Например. TOKEN=config_service_value.


person skwny    schedule 11.02.2018    source источник
comment
Примечание для интересующихся: сценарий предварительной установки запускается, когда ваш проект / библиотека устанавливается как зависимость другим проектом.   -  person Udayraj Deshmukh    schedule 08.06.2020


Ответы (1)


Вы можете добавить переменную среды в свой .bashrc или другой файл оболочки запуска.

export NPM_TOKEN=my_token_goes_here_foo_bar

person jonathanhculver    schedule 14.12.2018
comment
Для тех, кто торопится, как я, но не читал вопрос полностью, переменной окружения недостаточно, также требуется файл .npmrc, содержащий //registry.npmjs.org/:_authToken=${NPM_TOKEN} - person Gudlaugur Egilsson; 11.07.2019
comment
ПРАВИЛЬНЫЙ ОТВЕТ - Я перепробовал ~ 250 разных статей и ответов в течение трех дней. stackoverflow.com/a/61666885/3748178 - person Salathiel Genèse; 05.09.2020
comment
это не работает для меня, и у меня есть переменные env в моем .bashrc до загрузки nvm. - person Brad; 23.11.2020
comment
@ SalathielGenèse же здесь! Спасибо, что указали мне правильный ответ !!! - person chriszichrisz; 14.04.2021