Strapi应用部署至Heroku时出现未引用Font Awesome的401 Unauthorized错误
报错信息:
"https://npm.fontawesome.com/@fortawesome/fontawesome-free/-/5.15.4/fontawesome-free-5.15.4.tgz: Request failed \"401 Unauthorized\""
该问题属于Strapi的常见传递依赖问题,大量开发者在部署低版本Strapi到Heroku时都遇到过同类报错。报错的根本原因是Strapi官方内置的管理后台依赖链中包含@fortawesome系列包,当构建环境的npm/yarn配置默认将@fortawesome指向付费私有源https://npm.fontawesome.com/时,没有对应鉴权凭证就会触发401报错,和项目是否直接引入Font Awesome无关。
修复步骤
- 第一步:检查项目根目录是否存在
.npmrc文件,如果文件中存在@fortawesome:registry=https://npm.fontawesome.com/相关配置,直接删除该行配置;如果不存在.npmrc文件,直接在根目录新建该文件。 - 第二步:在
.npmrc文件中添加如下配置,强制@fortawesome相关包从公共npm源拉取:
@fortawesome:registry=https://registry.npmjs.org/ always-auth=false
- 第三步:删除本地项目的
node_modules文件夹、package-lock.json(npm用户)或yarn.lock(yarn用户)文件,本地执行npm install或yarn install验证依赖安装无报错后,将.npmrc、更新后的锁文件提交到Git仓库。 - 第四步:重新推送代码到Heroku触发构建即可解决该报错。如果依旧报错,可以在Heroku控制台的配置变量页新增环境变量
NPM_CONFIG_REGISTRY,值设置为https://registry.npmjs.org/,清除Heroku构建缓存后重新构建即可。
内容的提问来源于stack exchange,提问作者bobby_turks
相关产品推荐
相关产品推荐

