-
-
Notifications
You must be signed in to change notification settings - Fork 48
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
vite-plugin-vue2 does not support some components of ElementUI #16
Comments
@yyx990803 Hi,尤大,介于 elementUI 库在国内应用比较广泛,不知你能否抽时间帮忙看下这个问题呢? |
根本原因是 element-ui 用的是 cjs 语法然后 require 了 vue,导致它引用了 cjs 版本的 vue,而你的主应用跑的是 esm 版本的 vue(实际上等于应用里跑了两个 Vue) 这个情况在 Vue 3 依赖里比较少见,可以通过默认强行制定 vue 的解析路径解决。 fixed in 1.1.2 |
上次也碰到了,以为是因为beta版本导致,没有在意。 |
@yyx990803 感谢尤大的回复~,这个细节我确实没注意到。 |
commit/9a78726 改完后还是有问题,开发模式能显示
debug 后发现,@rollup/plugin-alias 在 resolvePlugins 和 createResolver 两处地方实例化,只有在 createResolver 中拿到的 而且,按照 Vite 文档描述的,修改 const elementUiVueAliasPlugin = (): VitePlugin => ({
name: 'element-ui-vue-alias',
config(config) {
const alias = config.resolve?.alias;
if (!alias) {
return {
resolve: {
alias: {
vue: 'vue/dist/vue.runtime.esm.js'
}
}
} as UserConfig;
}
if (Array.isArray(alias) && !alias.some(({ find }) => find === 'vue')) {
alias.push({
find: 'vue',
replacement: 'vue/dist/vue.runtime.esm.js'
});
} else if (!alias['vue']) {
alias['vue'] = 'vue/dist/vue.runtime.esm.js';
}
return null;
}
}); 临时解决办法就是项目配置中手写 // vite.config.ts
export default defineConfig({
resolve: {
alias: [
+ {
+ find: 'vue',
+ replacement: 'vue/dist/vue.runtime.esm.js'
+ }
]
}
}); |
vue@2.7 和 ElementUI@2.15 可以通过 vue-cli 正常打包与渲染( webpack,参考的官方文档 )
但切换成 vite +vite-plugin-vue2 后,部分组件如
el-table
则无法渲染且无任何异常错误。这个问题通过 webpack 就打包不存在问题,所以推断
vite-plugin-vue2
可能存在 bug,希望 Evan You 在百忙之中抽空看下。dependencies
index.html
main.js
table component
The text was updated successfully, but these errors were encountered: