Файл конфигурации .npmrc не читает переменную среды для загрузки частного модуля Node - PullRequest
1 голос
/ 04 апреля 2019

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

Когда я заменяю жестко закодированный токен переменной среды, приватный модуль не устанавливается.

Я пробовал несколько способов записи имени переменной, а также синтаксиса переменной в файле .npmrc из-за следующих ресурсов:

Пример .npmrc файлов:

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

И, например,Файлы .env, как со строками, так и без них, вокруг значения:

npm_config_npm_token=ABC123
npm_token=ABC123
NPM_CONFIG_NPM_TOKEN=ABC123
NPM_TOKEN=ABC123

Ничего не помогло.

Есть какие-нибудь подсказки?

РЕДАКТИРОВАТЬ

Я использую npm v6.9.0.

Ответы [ 2 ]

1 голос
/ 08 апреля 2019

Я понял ошибку в своем предположении и пришел к решению.

tl; dr - создайте постоянные переменные среды на основе оболочки и используйте синтаксис переменных в фигурных скобкахв файле .npmrc.

Ошибка при предположении, что npm читает файлы проекта .env.Очевидно, npm не читает файлы .env, расположенные в корне проекта.

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

Вместо этого я создал переменную среды на основе оболочки, которая всегда доступна.В следующих блоках кода показано, как добавить переменные среды в оболочку (oh-my-zsh), даже если вы смотрите и публикуете свои точечные файлы.

# ~/.oh-my-zsh/custom/env.zsh
# be sure this file is gitignored!

export TOKEN="ABC123"
# ~/.zshrc

source $ZSH/custom/env.zsh
# example .npmrc

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

Благодаря этот ответ на форуме npm , который подтолкнул меня к этому основанному на оболочке решению.


ps - потому что нативный OS X man файл страниц export и source под builtin категории, и фактически не предоставляйте никаких подробностей о том, как работает каждая команда, вот ссылки на страницу руководства для каждой из них:

1 голос
/ 08 апреля 2019

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

source .env

У меня была та же проблема, и я смотрел те же сообщения, что и вы, но ни один не работал доЯ попробовал это.Я получил подсказку от здесь .Я также использовал фигурные скобки вокруг своей переменной в файле .npmrc, в отличие от предложенных вами постов.Удачи!

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