npm配置文件未读取环境变量

时间:2019-04-05 21:07:10

标签: node.js npm environment-variables

我无法获取我的项目.npmrc文件来识别在三个不同范围(项目,用户,全局)下设置的任何环境变量。

我能够安装私有模块的唯一方法是将api密钥硬编码到.npmrc文件中,这显然是不可接受的,因为git监视了.npmrc。

我尝试按照npm-config docs的建议创建环境变量,即:

  • 在项目.env文件中,其中.npmrc文件和.env文件都是package.json的兄弟姐妹,即:fontawesome_pro_token=ABC123
  • 在用户配置文件中,即:$ npm set fontawesome_pro_token ABC123
  • 在全局配置文件中,即:$ npm set fontawesome_pro_token ABC123 --global

当我在项目.npmrc文件中引用env变量时,即:

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

我收到此错误:

Error: Failed to replace env in config: ${fontawesome_pro_token}

当我删除变量名周围的花括号时(如this stack overflow answer所示),出现以下错误:

npm ERR! 401 Unauthorized

关于如何配置npm以读取环境变量的任何建议?


偶然地 –如果将专用模块部署到Netlify,则Netlify希望.npmrc文件使用大括号来表示env var语法,请参见this gist。我可以确认在git观看的npmrc文件中使用大括号语法以及netlify项目管理仪表板中的setting a build env var确实可行。

1 个答案:

答案 0 :(得分:0)

在引用.env文件或处理环境变量时,请将大小写更改为大写

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