升级Quasar1(Vue2)至Quasar2(Vue3)提示core-js模块缺失怎么解决?
Quasar 1升级至Quasar 2时core-js模块缺失报错的解决方法
该错误由core-js版本不匹配导致:es.typed-array.at.js是core-js@3.16.0及以上版本才新增的垫片模块,Quasar 2依赖高版本core-js,从Quasar 1升级时残留的低版本core-js依赖或配置会触发该报错。
排查步骤
- 运行
npm ls core-js或yarn list core-js,确认当前安装的core-js实际版本,低于3.16.0即为版本过低 - 检查babel相关配置(.babelrc、babel.config.js或quasar.config.js的babel配置项),确认是否沿用了Quasar 1时期适配低版本core-js的规则
- 确认升级后是否清理过旧的依赖缓存和node_modules文件
解决方案
方案1:升级core-js到匹配版本
运行命令安装最新稳定版core-js:
# npm npm install core-js@latest --save # yarn yarn add core-js@latest
安装完成后删除node_modules文件夹和依赖锁文件(package-lock.json/yarn.lock),重新执行npm install或yarn install安装全部依赖,再启动项目测试。
方案2:修正babel配置
打开quasar.config.js,找到babel配置段,明确指定core-js版本为3,示例配置如下:
module.exports = configure(function (/* ctx */) { return { // 其他原有配置保持不变 babel: { presets: [ ['@babel/preset-env', { useBuiltIns: 'usage', corejs: 3 }] ] } } })
方案3:清理项目缓存
运行Quasar自带的缓存清理命令清除旧缓存:
quasar clean
执行完成后重新运行quasar dev启动项目即可。
若上述操作完成后仍存在报错,可检查项目引入的第三方依赖是否绑定了低版本core-js,通过package.json的resolutions(yarn)或overrides(npm)字段统一锁定core-js为3.16.0以上版本即可解决。
内容的提问来源于stack exchange,提问作者Md.Shahinur Alam
相关产品推荐
相关产品推荐

