升级到Vue3时报Cannot find module 'vue-template-compiler/package.json'如何解决
报错原因
这个报错是因为vue-template-compiler是Vue2专属的模板编译器,Vue3已经改用@vue/compiler-sfc作为模板编译器,你当前使用的@vue/cli-service版本或者依赖配置不匹配,导致启动时还在查找已经不存在的Vue2编译器包。
修复步骤
- 第一步:升级@vue/cli-service到兼容Vue3的版本
确认你的@vue/cli-service版本在v5.0.0及以上,低于该版本的话执行以下命令升级:yarn add @vue/cli-service@^5.0.0 -D - 第二步:替换模板编译器依赖
先卸载旧的Vue2编译器:
再安装和你项目Vue版本完全一致的Vue3编译器,版本必须和你装的vue/vue-compat版本号严格匹配:yarn remove vue-template-compileryarn add @vue/compiler-sfc@<你的Vue3版本号> -D - 第三步:检查vue.config.js配置
删除配置中所有指向vue-template-compiler的自定义compiler参数,迁移构建阶段不需要额外指定编译器,cli会自动关联安装的@vue/compiler-sfc。 - 第四步:清理缓存重装依赖
删掉本地残留依赖和锁文件避免冲突:
重新执行安装命令即可:rm -rf node_modules yarn.lockyarn install
额外注意事项
如果是使用Vue3迁移构建的场景,需要确保你package.json中已经将vue别名指向@vue/compat包,且@vue/compat的版本和@vue/compiler-sfc版本完全一致,否则后续还会出现依赖不匹配的问题。
内容的提问来源于stack exchange,提问作者guest381
相关产品推荐
相关产品推荐

