element-plus: [Bug Report] on-demand-import using vite not working for infinite-scroll directive
Element Plus version
1.1.0-beta.14
OS/Browsers version
Windows / Chrome 94
Vue version
3.2.13
Reproduction Link
Steps to reproduce
// in vite.config.js
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
export default defineConfig(({ mode }) => {
return {
plugins: [
vue(),
Components({
resolvers: [ElementPlusResolver()],
}),
],
}
});
// in any component
<template>
<ul v-infinite-scroll="load" class="infinite-list" style="overflow: auto">
<li v-for="i in count" :key="i" class="infinite-list-item">{{ i }}</li>
</ul>
</template>
<script lang="ts">
import { defineComponent, ref } from 'vue'
export default defineComponent({
setup() {
const count = ref(0)
const load = () => {
count.value = 2
}
return {
count,
load,
}
},
})
</script>
<style lang="scss">
.infinite-list {
height: 300px;
padding: 0;
margin: 0;
list-style: none;
.infinite-list-item {
display: flex;
align-items: center;
justify-content: center;
height: 50px;
background: var(--el-color-primary-light-9);
margin: 10px;
color: var(--el-color-primary);
& .list-item {
margin-top: 10px;
}
}
}
</style>
What is Expected?
No warnings or errors
What is actually happening?
- Warning in console Failed to resolve directive: infinite-scroll
- Error in loading the component

About this issue
- Original URL
- State: closed
- Created 3 years ago
- Comments: 24 (5 by maintainers)
找到原因了
vite.config.js中build.rollupOptions.output.manualChunks用来配置代码拆分时的问题具体请看图,这应该也是一个bug,但是我不知道怎么修复:正确拆分方式只能是:
manualChunks(id) { if (id.includes('node_modules')) { return id.toString().split('node_modules/')[1].split('/')[0].toString(); } }@YunYouJun
unplugin-vue-componentsandunplugin-element-plusonly registers for components and styles, please register directives by yourself.@adarshmadrecha OK, I will do this.