我的项目中需要一个模块来下载私有的npm包。为此,我使用.npmrc
文件提供下载软件包所需的只读令牌。为了将npm提供的令牌保留在文件之外,我希望将其添加为环境变量并将其扩展到文件中。 E.g:
# .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命令测试{.1}}是否在.npmrc变量扩展之前运行,但显然没有。我会得到错误而没有看到我的回显日志。我似乎在这里遗漏了一些东西。
我知道将我的令牌放在package.json中会使令牌从.npmrc文件中拉出来。我实际上正在使用提供env配置服务的服务,我将用它来运行命令并获取所需的令牌。例如。 preinstall
。
答案 0 :(得分:2)
事实证明,npmrc文档是错误的。
变量展开为$EXPAND_ME
,而不是${EXPAND_ME}
。
答案 1 :(得分:1)
您可以将环境变量添加到.bashrc
或其他启动外壳文件中。
export NPM_TOKEN=my_token_goes_here_foo_bar