完成了 BOM 管理和生产管理,完成部分发料单、采购计划和调拨单。

This commit is contained in:
c
2026-02-28 18:18:01 +08:00
commit 219eef4729
399 changed files with 46113 additions and 0 deletions

119
vite.config.mts Normal file
View File

@@ -0,0 +1,119 @@
import type { ConfigEnv, UserConfig } from "vite";
import { defineConfig, loadEnv } from "vite";
import { fileURLToPath, URL } from "node:url";
import { resolve } from "path";
import { wrapperEnv } from "./node/getEnv";
import { getPluginsList } from "./node/plugins";
import { include, exclude } from "./node/optimize";
import { getNowDate } from "./src/common/utils/core/date";
import pkg from "./package.json";
const { dependencies, devDependencies, name, version } = pkg;
const __APP_INFO__ = {
pkg: { dependencies, devDependencies, name, version }, // package.json 相关信息
lastBuildTime: getNowDate(), // 编译或打包时间
};
// https://vitejs.dev/config/
export default defineConfig(({ command, mode }: ConfigEnv): UserConfig => {
const env = loadEnv(mode, process.cwd());
const viteEnv = wrapperEnv(env);
return {
base: env.VITE_PUBLIC_PATH,
resolve: {
alias: {
"@": fileURLToPath(new URL("./src", import.meta.url)),
"@assets": fileURLToPath(new URL("./src/common/assets", import.meta.url)),
"@api": fileURLToPath(new URL("./src/common/api", import.meta.url)),
"@config": fileURLToPath(new URL("./src/common/config", import.meta.url)),
"@directives": fileURLToPath(new URL("./src/common/directives", import.meta.url)),
"@enums": fileURLToPath(new URL("./src/common/enums", import.meta.url)),
"@http": fileURLToPath(new URL("./src/common/http", import.meta.url)),
"@languages": fileURLToPath(new URL("./src/common/languages", import.meta.url)),
"@styles": fileURLToPath(new URL("./src/common/styles", import.meta.url)),
"@utils": fileURLToPath(new URL("./src/common/utils", import.meta.url)),
"@components": fileURLToPath(new URL("./src/components", import.meta.url)),
"@composables": fileURLToPath(new URL("./src/composables", import.meta.url)),
"@pinia": fileURLToPath(new URL("./src/pinia", import.meta.url)),
"@router": fileURLToPath(new URL("./src/router", import.meta.url)),
},
},
plugins: getPluginsList(command, viteEnv),
// https://cn.vitejs.dev/config/dep-optimization-options.html#dep-optimization-options
optimizeDeps: {
include,
exclude,
},
server: {
// 服务器主机名,如果允许外部访问,可设置为 "0.0.0.0"
host: "0.0.0.0",
port: viteEnv.VITE_PORT,
open: viteEnv.VITE_OPEN,
cors: true,
// 跨域代理配置
proxy: {
"/api": {
target: "https://vue3-design.teek.top",
changeOrigin: true,
secure: true, // 是否忽略 https 安全证书问题true 不忽略false 忽略
rewrite: path => path.replace(/^\/api/, ""),
},
},
// 预热文件以提前转换和缓存结果,降低启动期间的初始页面加载时长并防止转换瀑布
warmup: {
clientFiles: ["./index.html", "./src/{views,components}/*"],
},
},
css: {
preprocessorOptions: {
scss: {
additionalData: `@use "@styles/index.scss" as *;`,
},
},
},
// 打包去除 console.log && debugger
esbuild: {
pure: viteEnv.VITE_DROP_CONSOLE ? ["console.log"] : [],
drop: viteEnv.VITE_DROP_DEBUGGER ? ["debugger"] : [],
},
build: {
// esbuild 打包更快terser 打包慢
minify: "esbuild",
// minify: "terser",
// terserOptions: {
// compress: {
// drop_console: viteEnv.VITE_DROP_CONSOLE,
// drop_debugger: viteEnv.VITE_DROP_DEBUGGER,
// },
// },
outDir: env.VITE_OUT_DIR || "dist",
sourcemap: viteEnv.VITE_SOURCEMAP,
// 消除打包大小超过 500kb 警告
chunkSizeWarningLimit: 4000,
rollupOptions: {
input: {
index: resolve(__dirname, ".", "index.html"),
},
// 静态资源分类打包
output: {
// 拆包
manualChunks: {
"vue-chunks": ["vue", "vue-router", "pinia", "vue-i18n"],
"element-plus": ["element-plus"],
},
chunkFileNames: "static/js/[name]-[hash].js",
entryFileNames: "static/js/[name]-[hash].js",
assetFileNames: "static/[ext]/[name]-[hash].[ext]",
},
},
cssCodeSplit: !env.VITE_USE_CSS_SPLIT,
},
define: {
__APP_INFO__: JSON.stringify(__APP_INFO__),
__VUE_PROD_HYDRATION_MISMATCH_DETAILS__: "true", // 去除控制台的一个警告信息
log: {},
},
};
});