完成项目整体结构搭建,包含: 1. 前端Vue3+TS+Vite+Antd项目基础配置与核心依赖 2. 后端MidwayJS+TypeORM+JWT权限认证框架 3. 完整的用户、角色、权限、日志数据库表结构 4. 核心业务模块API与基础服务实现 5. 全局样式、路由、状态管理配置
79 lines
1.9 KiB
TypeScript
79 lines
1.9 KiB
TypeScript
import { defineConfig } from "vite";
|
|
import vue from "@vitejs/plugin-vue";
|
|
import path from "path";
|
|
|
|
export default defineConfig({
|
|
plugins: [vue()],
|
|
resolve: {
|
|
alias: {
|
|
"@": path.resolve(__dirname, "./src")
|
|
}
|
|
},
|
|
css: {
|
|
preprocessorOptions: {
|
|
less: {
|
|
javascriptEnabled: true,
|
|
modifyVars: {
|
|
// 主色调
|
|
"primary-color": "#1890ff",
|
|
"link-color": "#1890ff",
|
|
"success-color": "#52c41a",
|
|
"warning-color": "#faad14",
|
|
"error-color": "#ff4d4f",
|
|
"info-color": "#1890ff",
|
|
|
|
// 字体
|
|
"font-size-base": "14px",
|
|
"font-family": `-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif`,
|
|
|
|
// 圆角
|
|
"border-radius-base": "6px",
|
|
|
|
// 布局
|
|
"layout-header-height": "64px",
|
|
"layout-sider-background": "#001529",
|
|
"menu-dark-inline-submenu-bg": "#000c17",
|
|
"menu-dark-selected-item-icon-color": "#1890ff",
|
|
"menu-dark-selected-item-text-color": "#fff",
|
|
|
|
// 按钮
|
|
"btn-primary-shadow": "0 2px 0 rgba(24, 144, 255, 0.2)",
|
|
"btn-border-radius-base": "6px",
|
|
"btn-height-lg": "44px",
|
|
"btn-font-size-lg": "16px",
|
|
|
|
// 输入框
|
|
"input-height-base": "40px",
|
|
"input-height-lg": "44px",
|
|
"input-border-color": "#d9d9d9",
|
|
|
|
// 表格
|
|
"table-header-bg": "#fafafa",
|
|
"table-header-sort-active-bg": "#e6f7ff",
|
|
"table-row-hover-bg": "#fafafa",
|
|
|
|
// 卡片
|
|
"card-head-padding": "16px 24px",
|
|
"card-body-padding": "24px",
|
|
"card-shadow": "0 2px 8px rgba(0, 0, 0, 0.08)",
|
|
|
|
// Modal
|
|
"modal-header-bg": "#fff",
|
|
"modal-mask-bg": "rgba(0, 0, 0, 0.45)"
|
|
},
|
|
additionalData: `@import "@/assets/styles/variables.less";`
|
|
}
|
|
}
|
|
},
|
|
server: {
|
|
port: 3000,
|
|
proxy: {
|
|
"/api": {
|
|
target: "http://localhost:7001",
|
|
changeOrigin: true,
|
|
rewrite: (path) => path.replace(/^\/api/, "/api")
|
|
}
|
|
}
|
|
}
|
|
});
|