vite.config.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. /** @type {import('vite').UserConfig} */
  2. const { resolve } = require('path')
  3. import { defineConfig } from 'vite'
  4. import { VitePWA } from 'vite-plugin-pwa'
  5. import glsl from 'vite-plugin-glsl'
  6. // import mpa from 'vite-plugin-mpa'
  7. // import vitePluginImp from 'vite-plugin-imp'
  8. import vue from '@vitejs/plugin-vue'
  9. const vueJsx = require('@vitejs/plugin-vue-jsx')
  10. const legacy = require('@vitejs/plugin-legacy')
  11. // import svgLoader from 'vite-svg-loader'
  12. const proxyUrl = 'http://47.98.131.38:8989/' // test 环境
  13. // const proxyUrl = 'https://online.colexiu.com/' // online 环境
  14. // const proxyUrl = 'http://mstudev.dayaedu.com'
  15. export default defineConfig({
  16. base: './',
  17. resolve: {
  18. alias: {
  19. // '/src': resolve(__dirname, './src'),
  20. '/opensheetmusicdisplay': resolve(__dirname, './opensheetmusicdisplay'),
  21. },
  22. },
  23. css: {
  24. preprocessorOptions: {
  25. less: {
  26. lessOptions: {
  27. modifyVars: {
  28. '@blue': '#14928A',
  29. '@nav-bar-icon-color': '#14928A',
  30. },
  31. },
  32. },
  33. },
  34. },
  35. build: {
  36. rollupOptions: {
  37. input: {
  38. index: resolve(__dirname, 'index.html'),
  39. colexiu: resolve(__dirname, 'colexiu.html'),
  40. 'colexiu-report-share': resolve(__dirname, 'colexiu-report-share.html'),
  41. 'colexiu-report': resolve(__dirname, 'colexiu-report.html'),
  42. 'colxiu-website': resolve(__dirname, 'colxiu-website.html'),
  43. 'colxiu-share': resolve(__dirname, 'colexiu-share.html'),
  44. 'music-sheet': resolve(__dirname, 'music-sheet.html'),
  45. },
  46. },
  47. },
  48. plugins: [
  49. vue(),
  50. glsl(),
  51. vueJsx(),
  52. legacy({
  53. targets: ['> 0.25%, not dead'],
  54. ignoreBrowserslistConfig: true,
  55. }),
  56. VitePWA({
  57. injectRegister: 'networkfirst',
  58. workbox: {
  59. cleanupOutdatedCaches: true,
  60. },
  61. base: './',
  62. manifest: {
  63. name: '管乐团',
  64. short_name: '管乐团',
  65. theme_color: '#01C1B5',
  66. icons: [
  67. {
  68. src: './pwa-192x192.png',
  69. sizes: '192x192',
  70. type: 'image/png',
  71. },
  72. {
  73. src: './pwa-512x512.png',
  74. sizes: '512x512',
  75. type: 'image/png',
  76. },
  77. ],
  78. },
  79. }),
  80. // vitePluginImp({
  81. // libList: [
  82. // {
  83. // libName: 'vant',
  84. // style(name) {
  85. // if (/CompWithoutStyleFile/i.test(name)) {
  86. // return false
  87. // }
  88. // return `vant/es/${name}/style/index.js`
  89. // }
  90. // },
  91. // ]
  92. // })
  93. ],
  94. server: {
  95. cors: true,
  96. proxy: {
  97. '/api-student': {
  98. target: proxyUrl,
  99. changeOrigin: true,
  100. },
  101. '/api-teacher': {
  102. target: proxyUrl,
  103. changeOrigin: true,
  104. },
  105. '/api-admin': {
  106. target: proxyUrl,
  107. changeOrigin: true,
  108. },
  109. '/api-website': {
  110. target: proxyUrl,
  111. changeOrigin: true,
  112. },
  113. },
  114. },
  115. })