如何设置环境变量以供 .npmrc 使用

Posted

技术标签:

【中文标题】如何设置环境变量以供 .npmrc 使用【英文标题】:How to set env var for .npmrc use 【发布时间】:2018-07-21 13:47:29 【问题描述】:

我的项目中需要一个模块来下载私有 npm 包。为此,我使用.npmrc 文件来提供下载包所需的只读令牌。为了将 npm 提供的令牌保留在文件之外,我希望将其添加为环境变量并让它在文件中展开。例如:

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

在安装引用之前,我不知道如何将 NPM_TOKEN 添加到环境中。我尝试使用 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 文件中拉出的目的。我实际上正在使用提供环境配置服务的服务,我将使用该服务来运行命令并获取所需的令牌。例如。 TOKEN=config_service_value.

【问题讨论】:

当你的项目/库被另一个项目作为依赖安装时,预安装脚本会运行。 【参考方案1】:

您可以将环境变量添加到您的.bashrc 或其他启动shell 文件中。

export NPM_TOKEN=my_token_goes_here_foo_bar

【讨论】:

对于像我这样着急没有仔细阅读问题的人,环境变量是不够的,还需要.npmrc文件,包含//registry.npmjs.org/:_authToken=$NPM_TOKEN 正确答案 - 我在三天内尝试了大约 250 篇不同的文章和答案。 ***.com/a/61666885/3748178 这对我不起作用,在加载 nvm 之前,我的 .bashrc 中确实有环境变量。 @SalathielGenèse 在这里也一样!谢谢你指点我正确的答案!!!

以上是关于如何设置环境变量以供 .npmrc 使用的主要内容,如果未能解决你的问题,请参考以下文章

Postman之设置环境变量

如何设置系统环境变量?

如何设置ug环境变量

postman如何设置环境变量和全局变量

如何持久化docker中的环境变量

如何给pycharm 设置环境变量