相关疑难解决方法(0)

从 github npm 注册表安装软件包 - 身份验证错误 401

我刚刚在 GitHub 上发布了一个私有包,试图弄清楚它应该如何工作。现在我正在尝试将它安装在另一个项目中。我使用npm login --registry=https://npm.pkg.github.com具有write:packages,read:packages和repo权限的访问令牌进行了身份验证。在尝试运行时,npm install https://npm.pkg.github.com/@orgname/package-name我收到一条错误消息:

npm ERR! code E401
npm ERR! Unable to authenticate, need: Basic realm="GitHub Package Registry"
Run Code Online (Sandbox Code Playgroud)

如何添加/获得此权限?

github npm npm-install npm-login

42
推荐指数
3
解决办法
3万
查看次数

无论如何在没有从STDIN读取输入的情况下通过`npm login`设置npm凭证?

我正在尝试npm publish在docker容器内自动化,但是当npm login命令尝试从提示中读取用户名和电子邮件时遇到了麻烦:

npm login << EOF
username
password
email
EOF
Run Code Online (Sandbox Code Playgroud)

它在终端bash中工作,但在没有打开STDIN的情况下不在容器中,并显示以下错误消息:

Username: Password: npm ERR! cb() never called!
npm ERR! not ok code 0
Run Code Online (Sandbox Code Playgroud)

根据npm-adduser:

用户名,密码和电子邮件将从提示中读入.

那么如何在npm login没有STDIN打开的情况下运行?

bash node.js npm docker

38
推荐指数
9
解决办法
2万
查看次数

如何为.npmrc使用设置环境变量

我的项目中需要一个模块来下载私有的npm软件包。为此,我正在使用一个.npmrc文件来提供下载软件包所需的只读令牌。为了将npm提供的令牌保留在文件之外,我希望将其添加为环境变量,并使其在文件中扩展。例如:

# .npmrc
//registry.npmjs.org/:_authToken=${NPM_TOKEN}
Run Code Online (Sandbox Code Playgroud)

NPM_TOKEN在安装引用之前,我不知道如何将其添加到环境中。我尝试使用npm预安装脚本:

"preinstall": "NPM_READ_ONLY_TOKEN=my_token_goes_here_foo_bar"**

但是我仍然遇到同样的错误:

Error: Failed to replace env in config: ${NPM_READ_ONLY_TOKEN}
Run Code Online (Sandbox Code Playgroud)

我尝试使用echo命令进行测试,以查看是否preinstall在.npmrc变量扩展之前运行,但显然没有。我会收到错误,但看不到我的回声日志。我似乎在这里错过了一些东西。

我知道将令牌放入package.json会破坏将令牌从.npmrc文件中拉出的目的。我实际上正在使用提供环境配置服务的服务,该服务将用于运行命令并获取所需的令牌。例如TOKEN=config_service_value。

node.js npm package.json npm-scripts

7
推荐指数
3
解决办法
4469
查看次数

带有 .npmrc 和身份验证的纱线

我遇到了一个我不确定如何以最佳方式解决的问题。这里是:

我们最近开始使用私有 NPM 包,并试图找出如何将我们的本地开发循环与 CI 和部署管道联系起来。

我已经查看并开始利用 NPM_TOKEN 变量。在 CI 中,我们正在执行以下操作:

echo "//registry.yarnpkg.com/:_authToken=$NPM_TOKEN" >> ~/.npmrc
Run Code Online (Sandbox Code Playgroud)

这很有效,但在 Heroku 上部署期间,我们无法访问 home。所以为了让它在 Heroku 上工作,我们在项目目录中添加了一个 .npmrc 文件。这很有效,因为 npm 使用环境变量来填充它。

问题是在本地,所有纱线命令都因缺少变量而失败。NPM 网站 ( https://blog.npmjs.org/post/118393368555/deploying-with-npm-private-modules )上的建议方法是将令牌添加到 .profile 中的环境中。这似乎不是最好的解决方案,因为该设置现在是全局的,并且应该保存在每个存储库中。

我在这里发现了一个使用 npm 的类似问题,但它似乎不适用于纱线。 在 .npmrc 中使用身份验证令牌 那里 的注释还提到它不适用于 npm,并且没有提到 dotenv 文件的文档。

有没有更好的方法来处理这个问题?似乎是一个很早就应该解决的常见问题......

authentication node.js npm yarnpkg

5
推荐指数
2
解决办法
1万
查看次数