【问题标题】:npm config file not reading environment variablesnpm 配置文件不读取环境变量
【发布时间】:2019-08-27 19:52:29
【问题描述】:

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

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

我尝试按照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文件中引用环境变量时,即:

@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 确实有效。

【问题讨论】:

    标签: node.js npm environment-variables


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2010-12-30
      • 1970-01-01
      • 1970-01-01
      • 2017-03-06
      • 1970-01-01
      • 2015-11-10
      • 2020-03-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多