Vue2迁移Vue3遇TypeError及组件库兼容问题求助
核心程序模块从Vue2迁移至Vue3的构建问题
我开发的应用包含核心程序与模块,从Vue 2迁移至Vue 3时遇到棘手问题。此前版本中,每个模块通过Rollup配置生成component.js和settings.js文件,放置在Roaming/installationFile/module/nameofModule目录供核心程序读取。
原Rollup配置
//... imports const plugins = [ image(), json(), commonjs(), vue({ css: true, // Inject CSS in <style> tag }), nodeResolve({ browser: true }) ] export default [ { input: 'src/wrapper.js', output: { file: 'dist/component.js', format: 'es' }, plugins }, { input: 'src/settings/Settings.vue', output: { file: 'dist/settings.js', format: 'es' }, plugins } ];
package.json的dev脚本通过dev.js借助fs将文件复制到指定目录。
迁移后的Vite配置
export default defineConfig({ plugins: [ vue(), AutoImport({ resolvers: [ElementPlusResolver()], // 前端使用Element Plus }), Components({ resolvers: [ElementPlusResolver()], }), ], resolve: { dedupe: ['element-plus'] }, build: { lib: { entry: { component: 'src/wrapper.js', settings: 'src/settings/Settings.vue', }, formats: ['es'], }, minify: false, // 禁用压缩 rollupOptions: { output: { dir: 'dist', // 输出文件目录 format: 'es', entryFileNames: '[name].js', // 生成component.js和settings.js }, }, }, })
当前问题与尝试方案
尝试使用Rollup但Vue 3插件无法工作,触发错误:TypeError: Cannot read properties of null (reading 'ce')。
已尝试的解决方法:
- 执行了相关GitHub讨论中的所有方案;
- 移除AutoImport和Components插件后错误消失,但Element Plus组件及CSS全部失效;
- 按照Element Plus官方文档手动导入组件,未生效。
更新进展
切换至Vuetify后组件部分可用,例如v-select能正常显示但下拉无选项;通过vite-plugin-css-injected-by-js解决了CSS加载问题。目前希望找到适配Vue3.4的Rollup插件,考虑换回Rollup构建。
内容的提问来源于stack exchange,提问作者gitsal
相关产品推荐
相关产品推荐

