vite.config.ts 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. import { defineConfig } from 'vite'
  2. import uni from '@dcloudio/vite-plugin-uni'
  3. export default defineConfig({
  4. plugins: [
  5. uni(),
  6. {
  7. // 强制配置 proxy:uniapp vite-plugin 默认代理会覆盖 vite.config.ts 的 server.proxy
  8. // 移动端 uniapp 通过 /dev-api 访问后端,需要把 /dev-api 代理到 9225
  9. name: 'force-dev-api-proxy',
  10. configureServer(server) {
  11. server.middlewares.use('/dev-api', (req, res, next) => {
  12. const url = req.url || ''
  13. const opts = {
  14. hostname: '127.0.0.1',
  15. port: 9225,
  16. path: url,
  17. method: req.method,
  18. headers: req.headers
  19. }
  20. const proxyReq = require('http').request(opts, (proxyRes) => {
  21. res.writeHead(proxyRes.statusCode || 502, proxyRes.headers)
  22. proxyRes.pipe(res, { end: true })
  23. })
  24. proxyReq.on('error', (err) => {
  25. res.statusCode = 502
  26. res.end('Proxy error: ' + err.message)
  27. })
  28. req.pipe(proxyReq, { end: true })
  29. })
  30. },
  31. configurePreviewServer(server) {
  32. server.middlewares.use('/dev-api', (req, res, next) => {
  33. const url = req.url || ''
  34. const opts = {
  35. hostname: '127.0.0.1',
  36. port: 9225,
  37. path: url,
  38. method: req.method,
  39. headers: req.headers
  40. }
  41. const proxyReq = require('http').request(opts, (proxyRes) => {
  42. res.writeHead(proxyRes.statusCode || 502, proxyRes.headers)
  43. proxyRes.pipe(res, { end: true })
  44. })
  45. proxyReq.on('error', (err) => {
  46. res.statusCode = 502
  47. res.end('Proxy error: ' + err.message)
  48. })
  49. req.pipe(proxyReq, { end: true })
  50. })
  51. }
  52. }
  53. ],
  54. server: {
  55. host: '0.0.0.0',
  56. port: 9000
  57. },
  58. preview: {
  59. host: '0.0.0.0',
  60. port: 9000
  61. },
  62. css: {
  63. preprocessorOptions: {
  64. scss: {
  65. additionalData: `@import "@/static/styles/variables.scss";`
  66. }
  67. }
  68. }
  69. })