我无法获取我的项目.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确实可行。
答案 0 :(得分:0)
在引用.env文件或处理环境变量时,请将大小写更改为大写
@fortawesome:registry=https://npm.fontawesome.com/
//npm.fontawesome.com/:_authToken=${FONTAWESOME_PRO_TOKEN}