77 lines
2.6 KiB
JavaScript
77 lines
2.6 KiB
JavaScript
import { defineConfig } from 'vite'
|
||
import vue from '@vitejs/plugin-vue'
|
||
import { fileURLToPath, URL } from 'node:url'
|
||
|
||
// 豆包 ASR 鉴权信息(与 src/config/index.js 保持一致)
|
||
const DOUBAO_APP_ID = '2542859186'
|
||
const DOUBAO_ACCESS_TOKEN = 'a4h5fT3cVlBi82u93iEQlqT3c4MP6_8V'
|
||
const DOUBAO_ASR_RESOURCE_ID = 'volc.bigasr.sauc.duration'
|
||
|
||
// https://vite.dev/config/
|
||
export default defineConfig({
|
||
plugins: [vue()],
|
||
resolve: {
|
||
alias: {
|
||
'@': fileURLToPath(new URL('./src', import.meta.url))
|
||
}
|
||
},
|
||
server: {
|
||
host: '0.0.0.0',
|
||
proxy: {
|
||
'/tts-api': {
|
||
target: 'https://openspeech.bytedance.com',
|
||
changeOrigin: true,
|
||
rewrite: (path) => path.replace(/^\/tts-api/, '')
|
||
},
|
||
'/ark-api': {
|
||
target: 'https://ark.cn-beijing.volces.com',
|
||
changeOrigin: true,
|
||
rewrite: (path) => path.replace(/^\/ark-api/, '')
|
||
},
|
||
'/dashscope-api': {
|
||
target: 'https://dashscope.aliyuncs.com',
|
||
changeOrigin: true,
|
||
rewrite: (path) => path.replace(/^\/dashscope-api/, '')
|
||
},
|
||
// ASR WebSocket 代理:在代理层注入鉴权 Header(浏览器 WS 不支持自定义 Header)
|
||
'/asr-ws': {
|
||
target: 'wss://openspeech.bytedance.com',
|
||
changeOrigin: true,
|
||
ws: true,
|
||
rewrite: (path) => path.replace(/^\/asr-ws/, ''),
|
||
configure: (proxy) => {
|
||
proxy.on('proxyReqWs', (proxyReq) => {
|
||
proxyReq.setHeader('X-Api-App-Key', DOUBAO_APP_ID)
|
||
proxyReq.setHeader('X-Api-Access-Key', DOUBAO_ACCESS_TOKEN)
|
||
proxyReq.setHeader('X-Api-Resource-Id', DOUBAO_ASR_RESOURCE_ID)
|
||
proxyReq.setHeader('X-Api-Connect-Id', crypto.randomUUID())
|
||
})
|
||
}
|
||
},
|
||
// 阿里云OSS音频代理:解决COEP策略问题(支持多个OSS域名)
|
||
'/oss-audio': {
|
||
target: 'https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com',
|
||
changeOrigin: true,
|
||
rewrite: (path) => path.replace(/^\/oss-audio/, ''),
|
||
configure: (proxy) => {
|
||
proxy.on('proxyRes', (proxyRes) => {
|
||
// 添加CORS头以符合COEP要求
|
||
proxyRes.headers['access-control-allow-origin'] = '*'
|
||
})
|
||
}
|
||
},
|
||
// 阿里云OSS图片代理(支持多个OSS域名)
|
||
'/oss-image': {
|
||
target: 'https://dashscope-7c2c.oss-accelerate.aliyuncs.com',
|
||
changeOrigin: true,
|
||
rewrite: (path) => path.replace(/^\/oss-image/, ''),
|
||
configure: (proxy) => {
|
||
proxy.on('proxyRes', (proxyRes) => {
|
||
proxyRes.headers['access-control-allow-origin'] = '*'
|
||
})
|
||
}
|
||
}
|
||
}
|
||
}
|
||
})
|