完成了 BOM 管理和生产管理,完成部分发料单、采购计划和调拨单。
This commit is contained in:
119
vite.config.mts
Normal file
119
vite.config.mts
Normal 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: {},
|
||||
},
|
||||
};
|
||||
});
|
||||
Reference in New Issue
Block a user