gpt4 book ai didi

node.js - .npmrc 配置文件不读取环境变量来下载私有(private) Node 模块

转载 作者:太空宇宙 更新时间:2023-11-03 22:57:46 27 4
gpt4 key购买 nike

当我将身份验证 token 硬编码到 .npmrc 文件中时,私有(private)模块将按预期安装。

当我用环境变量替换硬编码 token 时,私有(private)模块无法安装。

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

.npmrc 文件示例:

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

以及示例 .env 文件,值周围有或没有字符串:

npm_config_npm_token=ABC123
npm_token=ABC123
NPM_CONFIG_NPM_TOKEN=ABC123
NPM_TOKEN=ABC123

没有任何效果。

有什么线索吗?

编辑

我使用的是 npm v6.9.0。

最佳答案

我发现了我的假设中的错误,并找到了解决方案。

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

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

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

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

# ~/.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}

感谢this npm forum answer这促使我采用了基于 shell 的解决方案。

<小时/>

ps - 因为 native OS X man 页面文件 exportsource 位于 builtin 类别下,并且实际上并没有提供有关每个命令如何工作的任何详细信息,以下是每个命令的手册页链接:

关于node.js - .npmrc 配置文件不读取环境变量来下载私有(private) Node 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55514076/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com