Vue Macros 是一个为 Vue.js 提供更多宏和语法糖的开源项目vue-macros/vue-macros: Explore and extend more macros and syntax sugar to Vue.
问题:npm run build-only 打包时,报错:[Vue] Load plugin failed: vue-macros/volar
排查发现:unplugin-vue-macros 已不再使用,已升级vue-macros,部分代码需要重新配置。
解决:根据官方文档 Bundler Integration | Vue Macros
① 进行 node和vue升级(到20.18以上),
nvm install latest # 安装最新版
nvm use latest # 切换到最新版
node -v # 检查 Node 版本
npm -v # 检查 npm 版本
② 进行 配置(ts.config.json 和 vite.config.ts,代码如下)
// vite.config.ts
import Vue from '@vitejs/plugin-vue'
import VueMacros from 'vue-macros/vite'
// import VueJsx from '@vitejs/plugin-vue-jsx'
// import VueRouter from 'unplugin-vue-router/vite'
export default defineConfig({
plugins: [
VueMacros({
plugins: {
vue: Vue(),
// vueJsx: VueJsx(), // if needed
// vueRouter: VueRouter({ // if needed
// extensions: ['.vue', '.setup.tsx']
// })
},
// overrides plugin options
}),
],
})
// tsconfig.json
{
"compilerOptions": {
// ...
"types": ["vue-macros/macros-global" /* ... */]
},
"vueCompilerOptions": {
"plugins": ["vue-macros/volar"],
},
}
注意:如果有多个 ts 配置文件 都要改。
参考:
Bundler Integration | Vue Macros前端 Vite 项目使用 vite-plugin-dts 打包输出类型文件,处理踩坑:Cannot find module 'vue'. Did you ... - 掘金