使用npm安装时出现Fontawesome许可证引发错误

时间:2019-07-17 07:26:41

标签: javascript node.js npm font-awesome font-awesome-5

根据fontawesome's documentation,我正在尝试安装专业版的fontawesome 5。 我创建了一个.npmrc文件,其中提到了许可证和注册表。

现在,我正在尝试运行 npm install --save-dev @ fortawesome / fontawesome-pro 。 它引发错误Bearer令牌值不是合法的HTTP标头值。我已经附上了相同的快照。 Error Snapshot

谢谢

2 个答案:

答案 0 :(得分:0)

您可以尝试其他方法来验证auth toke是否正确,然后可以使用the official documentation中所述的per project方法。上面写着

  

访问Pro软件包,其中包含更多图标和样式,   要求您配置@fortawesome范围以使用我们的Pro NPM   注册表。

     

Pro软件包是Pro附带的额外服务的一部分   订阅。可以访问它们,还有更多不同的图标   样式,其他服务和专门的支持。

     

全局设置-全局设置这些值,使其可以在任何项目中使用

npm config set "@fortawesome:registry" https://npm.fontawesome.com/ && \
  npm config set "//npm.fontawesome.com/:_authToken" TOKEN
     

每个项目-如果您希望每个项目都设置(对团队来说非常好)   和CI / CD),在项目的根目录(或   您有package.json文件):

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

完成此配置后,您可以安装最新的Pro版本的   字体通过npm或yarn很棒:

npm install --save-dev @fortawesome/fontawesome-pro

yarn add --dev @fortawesome/fontawesome-pro
     

环境变量-您还可以利用NPM的环境   变量替换:

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

FONTAWESOME_NPM_AUTH_TOKEN=TOKEN npm install --save-dev @fortawesome/fontawesome-pro

确保文件在根项目目录中。 Here's an issue related to what you're getting。从

  

这可能有助于避免将许可证密钥误认为令牌:-) Thx。

更改npm cache位置路径也可以帮助您解决它。 npm config set cache C:\Dev\nodejs\npm-cache --global或考虑删除npm cache

答案 1 :(得分:0)

该消息可能会产生误导。如果您的令牌太旧了,则会发生此错误(我本人已经发生过几次)

尝试从字体页上重新生成_auth_token

enter image description here

如果您不介意全局令牌(如果您不使用多个许可证),则可以像下面这样全局启用Pro许可证:

#: npm config set "@fortawesome:registry" https://npm.fontawesome.com/

#: npm config set "//npm.fontawesome.com/:_authToken" TOKEN_GOES_HERE

如果使用例如docker容器,更好的解决方案是设置环境变量,如下所示:

#: FONTAWESOME_NPM_AUTH_TOKEN=YOUR_TOKEN_GOES_HERE npm install --save @fortawesome/fontawesome-pro

或通过以下方式设置.npmrc文件:

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

但是尝试重新生成令牌并重新运行命令。