hn-hlw-pc/vite.config.js
2026-07-27 11:32:24 +08:00

86 lines
2.5 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { defineConfig, loadEnv } from "vite";
import vue from "@vitejs/plugin-vue";
import path from "path";
import WindiCSS from "vite-plugin-windicss";
import { createSvgIconsPlugin } from "vite-plugin-svg-icons";
import { resolve } from "path";
import fs from "fs-extra";
export default defineConfig(({ command, mode }) => {
const { VITE_TCB_PATH,VITE_API_URL } = loadEnv(mode, process.cwd());
return {
base: `/${VITE_TCB_PATH}/`, //相对路径
server: {
host: "0.0.0.0",
port: "5173",
headers: {
// 防止点击劫持攻击
'X-Frame-Options': 'SAMEORIGIN', // 只允许同源页面嵌入
// 'X-Frame-Options': 'DENY', // 如果要完全禁止被嵌入,使用 DENY
// 额外的安全响应头
'X-Content-Type-Options': 'nosniff',
'X-XSS-Protection': '1; mode=block',
'Content-Security-Policy': "frame-ancestors 'self'", // CSP 的现代替代方案
},
proxy: {
// 将 VITE_PROXY_API_URL 的请求代理到 VITE_API_URL
'/API': {
target: VITE_API_URL,
changeOrigin: true,
rewrite: (path) => path.replace(/^\/API/, '') // 可选:重写路径
}
}
},
plugins: [
vue(),
WindiCSS(),
createSvgIconsPlugin({
// 指定需要缓存的图标文件夹
iconDirs: [path.resolve(process.cwd(), "src/assets/svg-icons")],
// 指定symbolId格式
symbolId: "icon-[dir]-[name]",
}),
],
optimizeDeps: {
exclude: ["lib-generate-test-usersig-es.min"],
},
build: {
outDir: `package/${VITE_TCB_PATH}`,
target: ["chrome52"],
cssTarget: ["chrome52"],
terserOptions: {
compress: {
drop_console: true, // 去除 console.log 等调试信息
},
},
cssCodeSplit: true, // 分割 CSS避免全局 CSS 被打包成一个大文件
minify: "terser", // 使用 terser 进行压缩
brotliSize: true,
},
resolve: {
//文件系统路径的别名, 绝对路径
alias: {
"@": path.resolve(__dirname, "src"),
},
extensions: [".js", ".ts", ".vue", ".json"],
},
};
});
async function copyOldFiles(name) {
const srcDir = resolve(__dirname, name);
const destDir = resolve(__dirname, `oldFile`);
// 创建目标目录
if (!fs.existsSync(srcDir)) {
fs.mkdirSync(srcDir, { recursive: true });
}
if (!fs.existsSync(destDir)) {
fs.mkdirSync(destDir, { recursive: true });
}
try {
// 复制文件
await fs.copy(srcDir, destDir);
} catch (err) {}
}