使用Vite Library Mode构建时,dist目录为何出现vite.svg文件?
解决Vite Library Mode下未使用的vite.svg被打包到dist的问题
你遇到的问题是因为Vite默认会将public目录下的所有文件复制到dist输出目录,无论这些文件是否在代码中被引用。如果你的项目根目录存在public文件夹,且里面有vite.svg,构建时就会自动被复制过去。
下面是两种解决方法:
方法1:删除无用的静态资源
直接删除项目根目录public文件夹中的vite.svg文件,如果你的组件库不需要任何公共静态资源,也可以直接删除整个public文件夹。这是最直接的解决方式。
方法2:配置Vite停止自动复制public目录
如果需要保留public目录但不想自动复制其中的文件,可以在vite.config.js的build选项中添加copyPublicDir: false:
export default defineConfig({ plugins: [react()], build: { copyPublicDir: false, // 新增这一行 lib: { entry: resolve(__dirname, 'src/index.jsx'), name: 'MyLib', fileName: 'my-lib', }, rollupOptions: { external: ['react', 'react-dom'], output: { globals: { react: 'React', 'react-dom': 'ReactDOM', }, }, }, }, })
注意:如果你的组件库需要使用public目录中的某些资源,这种方式会把所有public资源都排除在外。此时你需要改为在代码中显式导入这些资源,让Vite将它们打包进产物中。
内容的提问来源于stack exchange,提问作者Andreas Riedmüller
相关产品推荐
相关产品推荐

