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

运行npm run test报错:无法找到模块next-intl/client

解决"Cannot find module 'next-intl/client'"测试错误

问题根源

next-intl从v3版本开始,移除了next-intl/client这个导入路径,所有hooks(比如usePathname)都直接从next-intl包根路径导出,你的测试代码里的mock路径已经过时。

具体解决步骤

  • 确认next-intl版本:执行npm list next-intl查看版本,或者直接看package.json中的依赖声明,如果版本是v3及以上,next-intl/client确实不存在。
  • 修改测试文件的mock代码:
    把原来的:
    jest.mock(
      'next-intl/client',
      (): Record<string, unknown> => ({
        usePathname: (): string => '/en',
        // 其他mock的hooks
      })
    );
    
    改成:
    jest.mock(
      'next-intl',
      (): Record<string, unknown> => ({
        usePathname: (): string => '/en',
        // 其他需要mock的hooks
      })
    );
    
  • 同步业务代码的导入:检查项目中所有导入next-intl/client的文件,替换成从next-intl导入,比如:
    // 旧写法
    import { usePathname } from 'next-intl/client';
    // 新写法(v3+)
    import { usePathname } from 'next-intl';
    
  • 清理jest缓存并重新测试:执行jest --clearCache,然后运行npm run test,避免缓存残留导致的问题。
  • 版本兼容性检查:如果你的Next.js版本低于13.4,next-intl v3会不兼容,此时要么升级Next.js到13.4+,要么降级next-intl到v2版本(不推荐长期使用)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 19:03:15