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

Next.js 13中如何导入多种字重的Poppins字体?

解决Next.js中@next/fonts/google导入Poppins多字重的错误

我尝试从@next/fonts/google导入Poppins字体的多种字重,但Poppins不是可变字体,需要手动定义字重。我写了如下代码:

const poppins = Poppins(
{
    weight: `100`|`200`|`300`|`400`|`500`|`600`|`700`|`800`|`900`,
  },
s)

运行后遇到以下错误:

./app/layout.jsx
Error: 
  x Font loader values must be explicitly written literals.
   ,----
 6 | weight: `100 | 200 | 300| 400 | 500 | 600 | 700 | 800 | 900`,
   :         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   `----

  x Font loader values must be explicitly written literals.
   ,----
 8 | s
   : ^
   `----

问题原因

  1. weight参数写法错误:Next.js字体加载器要求多字重必须以字符串字面量数组形式传入,不能用类型语法的|拼接,也不能用模板字符串包裹。
  2. 代码末尾多余的s是无效语法,直接导致语法错误。

正确代码示例

import { Poppins } from '@next/fonts/google';

const poppins = Poppins({
  weight: ['100', '200', '300', '400', '500', '600', '700', '800', '900'],
  subsets: ['latin'] // 必须指定字体子集,否则会有加载警告
});

额外提示

  • 不需要全部字重时,只保留需要的即可,比如weight: ['400', '700']
  • 字体子集根据你的用户群体选择,常用的是latin,如果有其他语言需求可以添加对应子集

内容的提问来源于stack exchange,提问作者xapis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 02:01:10