1. // Import { defineConfig } from 'vite'
    2. import vue from '@vitejs/plugin-vue'
    3. /*
    4. * https://vitejs.dev/config/
    5. * export default defineConfig({
    6. * plugins: [vue()]
    7. */
    8. // })
    9. import path from "path";
    10. /* Par ({ command, mode }) */
    11. export default ({ command }) => {
    12. if (command === 'serve') {
    13. return {
    14. // Serve 独有配置
    15. 'base': './',
    16. 'mode': 'development',
    17. // 默认值
    18. 'publicDir': 'public',
    19. // 路径别名
    20. 'alias': {
    21. // '@': path.resolve(__dirname, "./src"), // map '@' to './src'
    22. // '#': pathResolve("./components")
    23. },
    24. 'plugins': [
    25. //
    26. vue({
    27. 'template': {
    28. 'compilerOptions': {
    29. // ...
    30. }
    31. }
    32. })
    33. ],
    34. 'css': {
    35. },
    36. 'server': {
    37. // 端口
    38. 'port': '',
    39. // 时若端口已被占用则会直接退出,而不是尝试下一个可用端口。
    40. 'strictPort': true
    41. /*
    42. * Https:""
    43. * Open:"" 打开浏览器 地址
    44. * Proxy:{} //代理规则
    45. */
    46. }
    47. }
    48. }
    49. return {
    50. // Build 独有配置
    51. 'base': '/admin/',
    52. 'mode': 'production',
    53. // 默认值
    54. 'publicDir': 'public',
    55. 'plugins': [
    56. //
    57. vue({
    58. 'template': {
    59. 'compilerOptions': {
    60. // ...
    61. }
    62. }
    63. })
    64. ],
    65. 'css': {
    66. },
    67. 'server': {
    68. // 指定服务器主机名
    69. 'host': '',
    70. // 代理规则
    71. 'proxy': {
    72. // 字符串简写写法
    73. '/foo': 'http://localhost:5000/foo',
    74. // 选项写法
    75. '/api': {
    76. 'target': 'http://jsonplaceholder.typicode.com',
    77. 'changeOrigin': true,
    78. 'rewrite': path => path.replace(
    79. /^\/api/,
    80. ''
    81. )
    82. },
    83. // 正则表达式写法
    84. '^/fallback/.*': {
    85. 'target': 'http://jsonplaceholder.typicode.com',
    86. 'changeOrigin': true,
    87. 'rewrite': path => path.replace(
    88. /^\/fallback/,
    89. ''
    90. )
    91. }
    92. }
    93. }
    94. }
    95. }