123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218 |
- import path from "path";
- import vue from "@vitejs/plugin-vue";
- import legacy from "@vitejs/plugin-legacy";
- import vueJsx from "@vitejs/plugin-vue-jsx";
- import viteSvgIcons from "vite-plugin-svg-icons";
- import { viteMockServe } from "vite-plugin-mock";
- import { createHtmlPlugin } from "vite-plugin-html";
- import Components from "unplugin-vue-components/vite";
- import UnoCSS from "unocss/vite";
- import { presetAttributify, presetIcons, presetUno } from "unocss";
- import mkcert from "vite-plugin-mkcert";
- import DefineOptions from "unplugin-vue-define-options/vite";
- import AutoImport from "unplugin-auto-import/vite";
- import setting from "./src/settings";
- const prodMock = setting.openProdMock;
- import { optimizeDependencies, optimizeElementPlus } from "./optimize-include";
- const pathSrc = path.resolve(__dirname, "src");
- export default ({ command, mode }: any) => {
- return {
-
- base: setting.viteBasePath,
-
- define: {
-
- "process.platform": null,
- "process.version": null,
- GLOBAL_STRING: JSON.stringify(
- "i am global var from vite.config.js define"
- ),
- GLOBAL_VAR: {
- test: "i am global var from vite.config.js define",
- },
- },
- clearScreen: false,
- server: {
- hmr: { overlay: false },
- port: 5003,
- open: false,
- cors: true,
- host: true,
- https: false,
-
-
-
-
-
-
-
-
- },
- preview: {
- port: 5008,
- host: true,
- strictPort: true,
- },
- plugins: [
- vue({ reactivityTransform: true }),
-
-
-
- vueJsx(),
- UnoCSS({
- presets: [presetUno(), presetAttributify(), presetIcons()],
- }),
- DefineOptions(),
- mkcert(),
-
-
-
-
-
- viteSvgIcons({
-
- iconDirs: [
- path.resolve(process.cwd(), "src/icons/common"),
- path.resolve(process.cwd(), "src/icons/nav-bar"),
- ],
-
- symbolId: "icon-[dir]-[name]",
- }),
-
- viteMockServe({
- supportTs: true,
- mockPath: "mock",
- localEnabled: command === "serve",
- prodEnabled: prodMock,
- injectCode: `
- import { setupProdMockServer } from './mockProdServer';
- setupProdMockServer();
- `,
- logger: true,
- }),
-
-
- Components({
- resolvers: [
-
-
-
-
-
-
-
- ],
- }),
- AutoImport({
-
- imports: [
- "vue",
- "pinia",
- "vue-router",
- {
- "@/hooks/global/useCommon": ["useCommon"],
- "@/hooks/global/useElement": ["useElement"],
- "@/hooks/global/useVueRouter": ["useVueRouter"],
- "@/utils/axiosReq": ["axiosReq"],
- },
- ],
- eslintrc: {
- enabled: true,
- filepath: "./.eslintrc-auto-import.json",
- globalsPropValue: true,
- },
- dts: true,
- }),
-
- createHtmlPlugin({
- inject: {
-
- data: {
- title: setting.title,
- injectScript: `<script src="./baseConfig.js"></script>`,
- },
- },
- }),
- ],
-
- build: {
-
- minify: "terser",
- brotliSize: false,
-
- chunkSizeWarningLimit: 5000,
-
- terserOptions: {
-
- compress: {
- drop_console: false,
- pure_funcs: ["console.log", "console.info"],
- drop_debugger: true,
- },
- },
-
- assetsDir: "static/assets",
- rollupOptions: {
- output: {
- chunkFileNames: "static/js/[name]-[hash].js",
- entryFileNames: "static/js/[name]-[hash].js",
- assetFileNames: "static/[ext]/[name]-[hash].[ext]",
- },
- },
- },
- resolve: {
- alias: {
- "~/": `${pathSrc}/`,
- "@/": `${pathSrc}/`,
- },
-
-
- },
- css: {
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- },
- optimizeDeps: {
-
-
- include: ["moment-mini"],
- },
- };
- };
|