vite.config.ts 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import { defineConfig } from 'vite'
  2. import vue from '@vitejs/plugin-vue'
  3. import fs from 'fs'
  4. import { createServer as createLangServer } from './scripts/lang.js'
  5. import { resolve } from 'path'
  6. const outDir = resolve(process.env.PWD, process.argv[process.argv.length - 1])
  7. // https://vitejs.dev/config/
  8. export default async ({ mode }) => {
  9. const langProt = 9091
  10. const input: { [key in string]: string } = {}
  11. if (process.argv.includes('lang')) {
  12. await createLangServer(langProt)
  13. input.lang = resolve(__dirname, 'lang.html')
  14. } else {
  15. input.main = resolve(__dirname, 'index.html')
  16. }
  17. const proxy = {
  18. '/dev': {
  19. target: `http://localhost:${langProt}`,
  20. changeOrigin: true,
  21. rewrite: path => path.replace(/^\/dev/, '/dev')
  22. },
  23. '/api': {
  24. target: 'http://192.168.0.152:8088/',
  25. changeOrigin: true,
  26. rewrite: path => path.replace(/^\/api/, '')
  27. }
  28. }
  29. console.log(input)
  30. return defineConfig({
  31. build: {
  32. rollupOptions: {
  33. input
  34. },
  35. outDir: fs.existsSync(outDir) ? outDir : './dist'
  36. },
  37. plugins: [vue()],
  38. base: './',
  39. assetsInclude: ['public/**/*'],
  40. resolve: {
  41. extensions: ['.js', '.ts', '.json', '.vue'],
  42. alias: [
  43. {
  44. find: '@',
  45. replacement: resolve(__dirname, './src')
  46. },
  47. {
  48. find: 'bill',
  49. replacement: resolve(__dirname, './src/components/bill-ui')
  50. }
  51. ]
  52. },
  53. server: {
  54. host: '0.0.0.0',
  55. port: 5173,
  56. open: true,
  57. proxy: proxy
  58. }
  59. })
  60. }