vite对媒体、图片等文件打包处理单独发布到CDN

vite对媒体、图片等文件打包处理单独发布到CDN

1. 如果你希望对某几个库进行CDN部署,推荐使用vite-plugin-cdn-import

2.如果你希望对整个项目进行CDN部署,使用vite.config.ts中的base字段即可

import { defineConfig } from 'vite';

 
export default defineConfig(({ mode }) => {
  const isProduction = mode === 'production';
  const cdnDomain = isProduction ? process.env.VITE_CDN_DOMAIN : '/';
 
  return {
    base: cdnDomain,
  };

3.如果你希望只对某些文件进行CDN部署,比如图片,MP4等

// vite.config.ts
// https://vitejs.dev/config/
export default ({ mode }: ConfigEnv): UserConfigExport => {
  return {
	//......其他配置

    build: {

      rollupOptions: {
        output: {
          assetFileNames: (chunkInfo) => {
            // 用后缀名称进行区别处理
            // 处理其他资源文件名 e.g. css png 等
            if (
              chunkInfo.name?.endsWith('.webm') ||
              chunkInfo.name?.endsWith('.png') ||
              chunkInfo.name?.endsWith('.jpg') ||
              chunkInfo.name?.endsWith('.gif')
            ) {
              return `assets/images/[name].[ext]`;
            }

            return `assets/[name].[hash].[ext]`;
          },
        },
      },
    },
    experimental: {
      renderBuiltUrl(filename: string) {
        if (
          filename.endsWith('.webm') ||
          filename.endsWith('.png') ||
          filename.endsWith('.jpg') ||
          filename.endsWith('.gif')
        ) {
          const name = filename.replace('assets/images/', '');
          return `https://cdnURL/images/${name}`;
        }

        return filename;
      },
    },
  };
};

打包后dist的结构

├── assets
│   ├── images
│   │   ├── xxx.png
│   ├── xxx.js
│   ├── xxx.css
├── index.html
└── vite.svg
  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值