You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular项目@fontsource/roboto v5.1.1至v5.2.5迁移的mixin faces问题

解决@fontsource-variable/roboto字体文件解析错误的方案

问题原因

@fontsource-utils的faces mixin默认生成的字体文件路径,在Angular的webpack模块解析规则下,错误地包含了utils自身的目录前缀,导致无法定位到@fontsource-variable/roboto的字体文件。

解决步骤

1. 确认依赖版本

确保已安装匹配版本的依赖:

npm install @fontsource-utils/scss@^0.2.1 @fontsource-variable/roboto@^5.2.5 --save

2. 修改Styles.scss配置

手动指定字体文件的相对路径,修正faces mixin的调用参数:

@use "@fontsource-utils/scss" as fontsource;
@use "@fontsource-variable/roboto/scss" as roboto;

@include fontsource.faces(
  $metadata: roboto.$metadata,
  $styles: normal, italic, // 覆盖原循环的正常/斜体样式需求
  $weights: (100, 300, 400, 500, 700, 900),
  $dir: "../@fontsource-variable/roboto/files" // 直接指向字体文件所在目录
);

3. 验证修复

运行Angular项目:

ng serve

检查控制台是否还有文件解析错误,同时确认页面字体是否正常加载。

说明

  • 原代码的循环逻辑是为每个权重分别加载normal和italic样式,现在通过$styles: normal, italic参数可以一次性实现相同效果,无需循环。
  • 指定$dir参数是为了绕过utils mixin默认的路径生成逻辑,让webpack能正确定位到@fontsource-variable/roboto包内的字体文件。

内容的提问来源于stack exchange,提问作者Abdullah El-Kindy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 19:46:03