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

Next.js项目Jest无法解析CSS模块的问题排查与解决

问题原因与解决方案

问题原因

Jest默认不具备解析CSS模块的能力,当测试用例中导入Home.module.css时,ts-jest会将其当作JavaScript文件解析,而CSS语法(比如.container)不符合JavaScript规范,因此抛出SyntaxError: Unexpected token '.'错误。

解决步骤

1. 安装依赖

安装identity-obj-proxy,它会将CSS模块导出为一个键值对与类名一致的对象,满足测试场景下对CSS模块的导入需求:

npm install --save-dev identity-obj-proxy

2. 配置Jest模块映射

修改jest.config.js,添加moduleNameMapper规则,指定CSS文件的处理方式:

/** @type {import('ts-jest').JestConfigWithTsJest} */
module.exports = {
  preset: 'ts-jest',
  testEnvironment: 'jsdom',
  moduleNameMapper: {
    // 处理CSS/SCSS/SASS模块
    '\\.(css|scss|sass)$': 'identity-obj-proxy',
    // 可选:处理图片等静态资源(如果项目中有导入)
    '\\.(png|jpg|jpeg|gif|svg)$': '<rootDir>/__mocks__/fileMock.js',
  },
};

3. (可选)处理静态资源Mock(如图片)

如果项目中存在图片等静态资源导入,在项目根目录创建__mocks__/fileMock.js文件,内容如下:

module.exports = 'test-file-stub';

4. 验证修复

重新运行测试命令:

npm test

此时测试应该可以正常执行,不再出现CSS解析的语法错误。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 03:35:19