| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- import { defineConfig, loadEnv } from 'vite'
- import { resolve } from 'path'
- import dayjs from 'dayjs'
- import vue from '@vitejs/plugin-vue'
- import vueJsx from '@vitejs/plugin-vue-jsx'
- import { wrapperEnv } from './factory/utils'
- import { createProxy } from './factory/vite/proxy'
- import { createVitePlugins } from './factory/vite/plugin'
- import pkg from './package.json'
- import { OUTPUT_DIR } from './factory/constant'
- function pathResolve(dir) {
- return resolve(process.cwd(), '.', dir)
- }
- const { dependencies, devDependencies, name, version } = pkg
- export default defineConfig(({ command, mode }) => {
- const root = process.cwd()
- const env = loadEnv(mode, root)
- const viteEnv = wrapperEnv(env)
- const BUILD_NUMBER = process.env.VITE_APP_BUILD_NUMBER || 'dev'
- const __APP_INFO__ = {
- pkg: { dependencies, devDependencies, name, version },
- buildVersion: BUILD_NUMBER,
- lastBuildTime: dayjs().format('YYYY-MM-DD HH:mm:ss')
- }
- const { VITE_DROP_CONSOLE, VITE_PORT, VITE_PROXY, VITE_PUBLIC_PATH } = viteEnv
- const isBuild = command === 'build'
- return {
- root: pathResolve('src/renderer'),
- base: VITE_PUBLIC_PATH,
- resolve: {
- alias: {
- '@': resolve('src/renderer/src'),
- '#': resolve('src/renderer/types')
- }
- },
- server: {
- host: true,
- port: VITE_PORT,
- proxy: createProxy(VITE_PROXY)
- },
- define: {
- // 在构建时,将环境变量注入到 window 对象上
- // 'window.__APP_ENV__': JSON.stringify(env),
- // setting vue-i18-next
- // Suppress warning
- __INTLIFY_PROD_DEVTOOLS__: false,
- __APP_INFO__: JSON.stringify(__APP_INFO__)
- },
- esbuild: {
- pure: VITE_DROP_CONSOLE ? ['console.log'] : []
- },
- plugins: [vue(), vueJsx(), ...createVitePlugins(viteEnv, isBuild)],
- build: {
- outDir: resolve(process.cwd(), OUTPUT_DIR)
- }
- }
- })
|