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

新手上路,请多包涵

我的项目中需要一个模块来下载私有 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

原文由 skwny 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.8k
1 个回答

如果您使用 zsh 作为您的终端。您应该将环境变量放在 .zshenv 文件中。

 echo "export NPM_TOKEN=token_goes_here" >> ~/.zshenv

然后您必须重新启动终端,然后尝试 echo $NPM_TOKEN ,您应该会看到环境变量的值。

原文由 samuellawrentz 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题