Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js .npmrc配置文件未读取环境变量以下载专用节点模块_Node.js_Npm_Environment Variables - Fatal编程技术网

Node.js .npmrc配置文件未读取环境变量以下载专用节点模块

Node.js .npmrc配置文件未读取环境变量以下载专用节点模块,node.js,npm,environment-variables,Node.js,Npm,Environment Variables,当我将身份验证令牌硬编码到.npmrc文件中时,私有模块将按预期安装 当我用环境变量替换硬编码令牌时,私有模块无法安装 由于以下资源,我尝试了多种方法来编写变量名以及.npmrc文件中变量的语法: 示例.npmrc文件: @fortawesome:registry=https://npm.fontawesome.com/ //npm.fontawesome.com/:_authToken=$NPM_TOKEN 以及,例如.env文件,该值周围有或没有字符串: npm_config_npm_to

当我将身份验证令牌硬编码到.npmrc文件中时,私有模块将按预期安装

当我用环境变量替换硬编码令牌时,私有模块无法安装

由于以下资源,我尝试了多种方法来编写变量名以及.npmrc文件中变量的语法:

示例.npmrc文件:

@fortawesome:registry=https://npm.fontawesome.com/
//npm.fontawesome.com/:_authToken=$NPM_TOKEN
以及,例如.env文件,该值周围有或没有字符串:

npm_config_npm_token=ABC123
什么都没起作用

有什么线索吗

编辑


我使用的是npm v6.9.0。

假设您使用的是macOS,请尝试使用终端中的source命令刷新env文件

source .env

我也有同样的问题,看了你做的同样的帖子,但是在我尝试之前,没有一篇是有效的。我从他那里得到了暗示。我还在.npmrc文件中的变量周围使用了花括号,这与您链接的帖子中建议的不同。祝你好运

假设您正在使用macOS,请尝试使用终端中的source命令刷新env文件

source .env

我也有同样的问题,看了你做的同样的帖子,但是在我尝试之前,没有一篇是有效的。我从他那里得到了暗示。我还在.npmrc文件中的变量周围使用了花括号,这与您链接的帖子中建议的不同。祝你好运

我发现了我假设中的错误,并找到了解决办法

tl;dr-创建基于shell的持久化环境变量,并在.npmrc文件中使用大括号变量语法

错误是假定npm读取project.env文件。显然,npm不读取位于项目根目录中的.env文件

我希望npm从.env文件中读取数据,这样我就可以保留项目中包含的项目的所有相关数据

相反,我创建了一个始终可用的基于shell的环境变量。下面的代码块展示了如何将环境变量添加到oh my zsh shell中,即使您在git上观看并发布点文件也是如此

# ~/.oh-my-zsh/custom/env.zsh
# be sure this file is gitignored!

export TOKEN="ABC123"
多亏了这一点,我才有了这个基于shell的解决方案

ps-由于本机OS X手册页文件导出和源代码在内置类别下,实际上没有提供关于每个命令如何工作的任何详细信息,因此以下是每个命令的手册页链接:


我发现了我假设中的错误,并找到了解决办法

tl;dr-创建基于shell的持久化环境变量,并在.npmrc文件中使用大括号变量语法

错误是假定npm读取project.env文件。显然,npm不读取位于项目根目录中的.env文件

我希望npm从.env文件中读取数据,这样我就可以保留项目中包含的项目的所有相关数据

相反,我创建了一个始终可用的基于shell的环境变量。下面的代码块展示了如何将环境变量添加到oh my zsh shell中,即使您在git上观看并发布点文件也是如此

# ~/.oh-my-zsh/custom/env.zsh
# be sure this file is gitignored!

export TOKEN="ABC123"
多亏了这一点,我才有了这个基于shell的解决方案

ps-由于本机OS X手册页文件导出和源代码在内置类别下,实际上没有提供关于每个命令如何工作的任何详细信息,因此以下是每个命令的手册页链接:


谢谢你的意见,约翰。我能够找到一个使用基于持久shell的env变量的解决方案。和你一样,我也意识到堆栈溢出的答案表明npm文档的wrt变量语法是错误的,实际上是错误的:即:npm文档是正确的。谢谢你的输入。我能够找到一个使用基于持久shell的env变量的解决方案。和你一样,我也意识到,堆栈溢出的答案表明npm文档是错误的wrt变量语法,实际上是错误的:也就是说,npm文档是正确的。
NPM_CONFIG_NPM_TOKEN=ABC123
NPM_TOKEN=ABC123
source .env
# ~/.oh-my-zsh/custom/env.zsh
# be sure this file is gitignored!

export TOKEN="ABC123"
# ~/.zshrc

source $ZSH/custom/env.zsh
# example .npmrc

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