根本原因:
@babel/core升级后变更了@babel/generator中source-map方法
一、coverageProvider配置为v8
coverageProvider: 'v8'
二、锁定@babel/generator
coverageProvider默认使用babel,当babel编译器不能正确识别vue的template的source-map问题。需要锁定babel版本
1. npm>=8
"overrides": {
"@babel/core": "7.17.9",
"@babel/generator": "7.17.9",
"istanbul-lib-instrument": "5.2.0"
}
2. npm-force-resolutions
- 在script中添加
"preinstall": "npx npm-force-resolutions"
"resolutions": {
"@babel/core": "7.17.9",
"@babel/generator": "7.17.9",
"istanbul-lib-instrument": "5.2.0"
},
3. 锁定所有@babel/generator及其相关依赖。可以通过添加devDependencies或package-lock.json中锁定
"devDependencies": {
"@babel/generator": "7.17.9",
"@babel/helper-create-class-features-plugin": "7.16.7",
"@babel/helper-module-transforms": "7.16.7",
"@babel/helper-remap-async-to-generator": "7.16.8",
"@babel/helper-replace-supers": "7.16.7",
"@babel/helper-wrap-function": "7.16.8",
"@babel/helpers": "7.17.9",
"@babel/plugin-proposal-async-generator-functions": "~7.17.0",
"@babel/plugin-proposal-class-properties": "7.16.7",
"@babel/plugin-proposal-class-static-block": "7.16.7",
"@babel/plugin-proposal-decorators": "7.16.7",
"@babel/plugin-proposal-optional-chaining": "7.12.7",
"@babel/plugin-proposal-private-methods": "7.16.7",
"@babel/plugin-proposal-private-property-in-object": "7.16.7",
"@babel/plugin-transform-async-to-generator": "7.16.8",
"@babel/plugin-transform-classes": "7.17.12",
"@babel/plugin-transform-computed-properties": "7.16.7",
"@babel/plugin-transform-modules-amd": "7.16.7",
"@babel/plugin-transform-modules-commonjs": "7.16.7",
"@babel/plugin-transform-modules-systemjs": "7.16.7",
"@babel/plugin-transform-modules-umd": "7.16.7",
"@babel/plugin-transform-object-super": "7.16.7",
"@babel/preset-env": "7.16.7",
"@babel/traverse": "7.17.9"
}