Jest遇意外token错误:query-string导入问题求助
解决Jest遇到query-string导入引发的"unexpected token"错误
针对你遇到的Jest报错问题,结合你的项目配置(Vite、"type": "module"、query-string v9),可以通过以下步骤解决:
1. 安装必要依赖
确保已安装babel与jest的适配依赖:
npm install --save-dev babel-jest @babel/core
2. 修改Jest配置
更新jest.config.js,让Jest处理query-string的ES模块转换:
export default { testEnvironment: 'jest-environment-jsdom', // 用babel-jest转换JS/JSX文件 transform: { '^.+\\.(js|jsx)$': 'babel-jest', }, // 排除query-string从忽略转换的列表中 transformIgnorePatterns: [ 'node_modules/(?!query-string/)' ], moduleFileExtensions: ['js', 'jsx'], };
3. 调整Babel配置
修改babel.config.json,让Babel针对Node环境(Jest运行环境)转换ES模块:
{ "presets": [ ["@babel/preset-env", { "targets": { "node": "current" } }], ["@babel/preset-react", { "runtime": "automatic" }] ] }
原因说明
query-string v9仅提供ES模块格式,而Jest默认会跳过node_modules目录下文件的转换。同时你的项目启用了"type": "module",Jest需要明确配置来识别并转换这类ES模块。通过上述配置,我们让Jest使用Babel处理query-string,并将其转换为Jest能识别的CommonJS格式,从而解决"unexpected token"错误。
内容的提问来源于stack exchange,提问作者Syden
相关产品推荐
相关产品推荐

