88 lines
2.6 KiB
JavaScript
88 lines
2.6 KiB
JavaScript
|
|
import { defineConfig } from 'vite';
|
|||
|
|
import vue from '@vitejs/plugin-vue';
|
|||
|
|
|
|||
|
|
// 定义一个简单的插件来解决阿里云SDK加载问题
|
|||
|
|
const fixAliyunSDKPlugin = {
|
|||
|
|
name: 'fix-aliyun-sdk',
|
|||
|
|
enforce: 'pre',
|
|||
|
|
transform(code, id) {
|
|||
|
|
// 在构建时移除对阿里云安全SDK的引用
|
|||
|
|
// 这个正则会匹配可能的阿里云SDK引入代码
|
|||
|
|
if (code.includes('ice-plugin-spm') || code.includes('APlus') || code.includes('securitySDK')) {
|
|||
|
|
return code
|
|||
|
|
.replace(/import\s+.*ice-plugin-spm.*;/g, '')
|
|||
|
|
.replace(/import\s+.*APlus.*;/g, '')
|
|||
|
|
.replace(/import\s+.*securitySDK.*;/g, '')
|
|||
|
|
.replace(/\s*script\s*src\s*=\s*["']https:\/\/o\.alicdn\.com\/tbpc\/securitySDK\/securitySDK\.umd\.js["']\s*>/g, '')
|
|||
|
|
}
|
|||
|
|
return null;
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
export default defineConfig(({ mode }) => {
|
|||
|
|
const isDebug = mode === 'debug'
|
|||
|
|
const isRelease = mode === 'release'
|
|||
|
|
|
|||
|
|
return {
|
|||
|
|
// 配置Vue插件以支持更好的调试体验
|
|||
|
|
plugins: [
|
|||
|
|
vue({
|
|||
|
|
template: {
|
|||
|
|
compilerOptions: {
|
|||
|
|
// 启用调试提示
|
|||
|
|
whitespace: 'preserve'
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}),
|
|||
|
|
fixAliyunSDKPlugin // 添加我们的修复插件
|
|||
|
|
],
|
|||
|
|
server: {
|
|||
|
|
port: 8080, // 改为不同于后端的端口
|
|||
|
|
proxy: {
|
|||
|
|
// 添加代理配置,将WebSocket请求转发到后端
|
|||
|
|
'/': {
|
|||
|
|
target: 'http://localhost:8805',
|
|||
|
|
ws: true,
|
|||
|
|
changeOrigin: true,
|
|||
|
|
// 配置代理超时时间,避免过早断开连接
|
|||
|
|
timeout: 60000,
|
|||
|
|
// 配置重写规则
|
|||
|
|
rewrite: (path) => path
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
// 根据模式配置构建选项
|
|||
|
|
build: {
|
|||
|
|
// 调试模式下启用sourcemap,发布模式下禁用
|
|||
|
|
sourcemap: isDebug,
|
|||
|
|
// 调试模式下禁用压缩,发布模式下启用
|
|||
|
|
minify: isRelease,
|
|||
|
|
// 根据模式设置不同的输出目录
|
|||
|
|
outDir: 'dist',
|
|||
|
|
// 配置外部依赖,避免打包不必要的库
|
|||
|
|
rollupOptions: {
|
|||
|
|
external: ['https://o.alicdn.com/tbpc/securitySDK/securitySDK.umd.js']
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
// 配置CSS预处理器选项
|
|||
|
|
css: {
|
|||
|
|
preprocessorOptions: {
|
|||
|
|
css: {
|
|||
|
|
// 禁用@import内联,可能有助于解决一些导入问题
|
|||
|
|
url: false
|
|||
|
|
},
|
|||
|
|
// 配置Sass使用现代API,避免旧版JS API警告
|
|||
|
|
scss: {
|
|||
|
|
api: 'modern-compiler'
|
|||
|
|
},
|
|||
|
|
sass: {
|
|||
|
|
api: 'modern-compiler'
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
// 配置开发服务器的CSP头信息
|
|||
|
|
headers: {
|
|||
|
|
'Content-Security-Policy': "script-src 'self' 'unsafe-inline' 'unsafe-eval'"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
})
|