在vite搭建的vue项目中,目前我单独对项目中的一个组件进行打包,这个组件用了element-plus;打包后发现生成了很多js文件;最后找到了原因,似乎是其他组件中也用了element-plus,组件共用了element-plus依赖,导致自动把其他组件也打包进来了;但是目前我只希望打包我当前这个组件,不要把其他的组件也打包进来,有没有解决办法。


这是我的vite.config文件
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { resolve } from 'path';
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
const pathResolve = (dir: string) => {
return resolve(__dirname, '.', dir);
};
const alias: Record<string, string> = {
'@': pathResolve('./src'),
};
// https://vitejs.dev/config/
export default defineConfig({
base:'./',
build:{
outDir: 'my-map/dist', //输出文件名称
lib:{
entry: resolve(__dirname, './index.ts'), //指定组件编译入口文件
name: 'MyMap',
fileName: 'my-map'
},//库编译模式配置
rollupOptions: {
external: ['vue','zrender','pinia','element-plus'],
output: {
// format: 'es', // 默认es,可选 'amd' 'cjs' 'es' 'iife' 'umd' 'system'
exports: 'named',
globals: {
vue:'Vue',
zrender:'zrender',
pinia:'pinia',
'element-plus': 'ElementPlus',
},
}
},
minify: 'terser', // Vite 2.6.x 以上需要配置 minify: "terser", terserOptions 才能生效
terserOptions: { // 在打包代码时移除 console、debugger 和 注释
compress: {
drop_console: true, // 生产环境时移除console
drop_debugger: true // 生产环境时移除debugger
},
format: {
comments: false // 删除注释comments
}
}
},
plugins: [
vue(),
AutoImport({
resolvers: [ElementPlusResolver()],
}),
Components({
resolvers: [ElementPlusResolver()],
}),
],
resolve: {
alias,
},
})