vite排除public打包文件
时间: 2025-05-30 09:33:34 浏览: 17
### Vite 构建过程中排除 Public 文件夹配置
在使用 Vite 进行项目构建时,`public` 文件夹内的文件不会被打包而是直接复制到 `dist` 目录中[^1]。这意味着如果希望进一步控制这些文件的行为或完全排除它们参与最终的打包流程,则需要采取额外措施。
对于想要彻底忽略 `public` 下的内容不让其进入输出目录的情况,可以在项目的根目录创建 `.gitignore` 或者通过修改 `vite.config.ts/js` 来调整行为:
#### 方法一:利用环境变量与脚本逻辑绕过拷贝操作
由于 Vite 默认会把 `public` 中的数据原样搬运过去而并不做任何处理,因此可以通过更改部署命令,在执行实际编译前先清理掉不需要同步过去的子项;也可以基于特定条件判断是否跳过此步骤。
#### 方法二:定制化插件拦截事件
编写一个简单的 Rollup 插件用于监听并阻止某些资源被写入目标位置。下面是一个简单例子展示如何做到这一点:
```javascript
// vite.config.js or vite.config.ts
import { defineConfig } from 'vite';
export default defineConfig({
plugins: [
{
name: 'exclude-public',
async generateBundle(options, bundle) {
const publicPath = './public'; // 定义要过滤的目标路径
Object.keys(bundle).forEach((id) => {
if (bundle[id].fileName.startsWith(publicPath)) {
delete bundle[id]; // 移除匹配上的条目
}
});
},
},
],
});
```
需要注意的是上述方式仅适用于那些已经被纳入模块依赖图谱里的公共资产,而对于单纯放置于该处待转移使用的纯静态素材则依旧遵循原有机制不受影响[^5]。
另外值得注意的一点是,当涉及到压缩等后期处理阶段时,可能还需要引入其他工具如 `vite-plugin-compression` 来辅助完成更复杂的场景需求[^3]。
阅读全文
相关推荐
















