使用Jest运行测试时随机出现ERR_VM_MODULE_NOT_MODULE错误求助
解决Jest随机出现「ERR_VM_MODULE_NOT_MODULE」错误
升级Jest版本
这个错误在Jest 28.x的部分版本中存在已知ESM兼容性问题,尤其配合--experimental-vm-modules使用时更容易触发随机报错。升级到Jest 29.x及以上版本,官方已修复大量ESM相关bug,能有效解决该问题。调整测试命令参数
移除--experimental-specifier-resolution=node参数,Jest 28+对ESM的支持已无需额外添加该参数,它反而可能与VM模块特性冲突引发随机异常。修改后的命令:node --require=dotenv/config --experimental-vm-modules node_modules/jest/bin/jest.js --config ./jest.config.json检查jest.config.json配置
确保配置中testEnvironment设置为node,避免与其他测试环境的ESM处理逻辑冲突:{ "testEnvironment": "node", "extensionsToTreatAsEsm": [".js", ".mjs"], "moduleNameMapper": { "^(\\.{1,2}/.*)\\.js$": "$1" } }同时确认
extensionsToTreatAsEsm配置正确,让Jest精准识别ESM模块,减少模块加载时的随机异常。清理Jest缓存
缓存的旧模块数据可能导致加载异常,每次运行测试前先清理缓存:node --require=dotenv/config --experimental-vm-modules node_modules/jest/bin/jest.js --config ./jest.config.json --clearCache
内容的提问来源于stack exchange,提问作者Naum Asafov
相关产品推荐
相关产品推荐

