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

升级query-string至8.1后Next.js 13的test:ci执行失败求助

解决方案

1. 修改Jest配置中的transformIgnorePatterns

将原有配置调整为不排除query-string包,允许Jest对其进行转译:

module.exports = {
  // ... 其他配置保持不变
  transformIgnorePatterns: [
    'node_modules/(?!query-string)', // 不对query-string忽略转译
    '^.+\\.module\\.(css|sass|scss)$',
  ],
};

2. 确认代码导入方式

你已将导入语句调整为:

import queryString from 'query-string';
// 使用方式
queryString.stringifyUrl({ url })

这与query-string v8的导出规范匹配,无需额外修改。

问题原因

query-string从v8版本起切换为纯ESM模块,而Jest默认会跳过node_modules目录下的文件转译。当Jest执行该包内代码时,遇到ESM的import语句就会触发语法错误。通过修改transformIgnorePatterns,让Jest对query-string执行转译,babel-jest会将其转换为Jest兼容的CommonJS格式,从而解决报错问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 04:30:59