npm 安装失败并出现 404 错误(/@fortawesome%2fpro-regular-svg-icons - 未找到)尽管设置了令牌

Ran*_*shi 9 ubuntu node.js npm

修复此链接中未找到的私有包的故障后。

我陷入了错误“font Awesome”库未找到。以下是错误消息详细信息:

npm ERR! code E404
npm ERR! 404 Not Found - GET https://registry.npmjs.org/@fortawesome%2fpro-regular-svg-icons - Not found
npm ERR! 404 
npm ERR! 404  '@fortawesome/pro-regular-svg-icons@^5.15.2' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404 It was specified as a dependency of 'data-qa-frontend'
npm ERR! 404 
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/rando/.npm/_logs/2021-09-23T12_59_34_988Z-debug.log

Run Code Online (Sandbox Code Playgroud)

如果我为 font Awesome 注册表添加 auth_token,如下所示:

//registry.npmjs.com/:_authToken={TOKEN}
@fortawesome:registry=https://npm.fontawesome.com/
//npm.fontawesome.com/:_authToken={TOKEN}
Run Code Online (Sandbox Code Playgroud)

由于找不到私有包而失败。在删除 font-awesome 注册表时,它会抛出找不到 font-awesome 库的错误。

以下是部分 package.json 文件:

{
  "name": "project-name",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@org/private-package": "^0.1.24",
    "@fortawesome/fontawesome-pro": "^5.15.3",
    "@fortawesome/fontawesome-svg-core": "^1.2.34",
    "@fortawesome/pro-duotone-svg-icons": "^5.15.2",
    "@fortawesome/pro-light-svg-icons": "^5.15.2",
    "@fortawesome/pro-regular-svg-icons": "^5.15.2",
    "@fortawesome/pro-solid-svg-icons": "^5.15.2",
    "@fortawesome/react-fontawesome": "^0.1.14",
Run Code Online (Sandbox Code Playgroud)

先感谢您。我将不胜感激解决这个问题的任何帮助。

Ran*_*shi 14

经过多次尝试,

我按照以下步骤解决了这个问题:

  1. 修改该.npmrc文件,使其内容如下:
@fortawesome:registry=https://npm.fontawesome.com/
//npm.fontawesome.com/:_authToken={TOKEN}
Run Code Online (Sandbox Code Playgroud)
  1. 转到终端并登录 npm,如下所示:
npm login
Username:
Password:
Email: (this IS public) {may email}
Logged in as {my username} on https://registry.npmjs.com/.
Run Code Online (Sandbox Code Playgroud)

检查后.npmrc file,它应该如下所示:

@fortawesome:registry=https://npm.fontawesome.com/
//npm.fontawesome.com/:_authToken={TOKEN}
//registry.npmjs.org/:_authToken=npm_{TOKEN}
Run Code Online (Sandbox Code Playgroud)
  1. 最后在项目的根目录运行 npm install 并将成功完成。


小智 5

根据这里找到的官方文档:

1) 您可以为所有项目设置 npm 令牌: 此全局设置将允许您的任何项目使用 Font Awesome 包和您的令牌。对于全局设置,运行:

npm config set "@fortawesome:registry" https://npm.fontawesome.com/
npm config set "//npm.fontawesome.com/:_authToken" XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
Run Code Online (Sandbox Code Playgroud)

2) 您可以为特定项目设置 npm 令牌: 这种按项目设置允许您单独配置每个项目,这对团队和 CI/CD 很有好处。

您需要.npmrc在项目的根目录(或package.json文件所在的任何位置)创建一个文件并将其放入其中:

@fortawesome:registry=https://npm.fontawesome.com/
//npm.fontawesome.com/:_authToken=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
Run Code Online (Sandbox Code Playgroud)