如何为.npmrc使用设置env var

时间:2018-02-11 05:47:40

标签: node.js npm package.json npm-scripts

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

2 个答案:

答案 0 :(得分:2)

事实证明,npmrc文档是错误的。

变量展开为$EXPAND_ME,而不是${EXPAND_ME}

答案 1 :(得分:1)

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

export NPM_TOKEN=my_token_goes_here_foo_bar