• vite.config.js文件配置代理设置VITE_APP_BASE_API


    .env.development文件

    ENV = 'development'
    # base api
    VITE_APP_BASE_API = '/dev-api'
    

    .env.production文件

    ENV = 'production'
    # base api
    VITE_APP_BASE_API = '/api'
    
     define: {
        'process.env': {
          VITE_APP_BASE_API: 'https://xxx.com'
        }
      },
      server: {
        hmr: true, // vue3 vite配置热更新不用手动刷新
        host: '0.0.0.0',
        port: 3000, // 端口
        open: false, // 启动项目后打开浏览器
        hot: true,
        overlay: {
          warning: false,
          error: true
        },
        proxy: {
          [env.VITE_APP_BASE_API]: {
            target: 'https://xxx.com',
            ws: true,
            changeOrigin: true,
            secure: false,
            rewrite: path => path.replace(RegExp(`^${env.VITE_APP_BASE_API}`), '')
          }
        }
      }
    }
    

    完整: 

    1. import { defineConfig, loadEnv } from 'vite'
    2. import vue from '@vitejs/plugin-vue'
    3. import AutoImport from 'unplugin-auto-import/vite' // 自动导入
    4. import Components from 'unplugin-vue-components/vite' // 组件注册
    5. import { ElementPlusResolver, NaiveUiResolver } from 'unplugin-vue-components/resolvers'
    6. import vueI18n from '@intlify/vite-plugin-vue-i18n'
    7. // 自动导入element图标
    8. import Icons from 'unplugin-icons/vite'
    9. import IconsResolver from 'unplugin-icons/resolver'
    10. import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
    11. import { resolve } from 'path'
    12. // https://vitejs.dev/config/
    13. export default defineConfig(({ command, mode }) => {
    14. // 获取.env文件里定义的环境变量
    15. const env = loadEnv(mode, process.cwd())
    16. // .env文件中的环境变量必须以VITE_为前缀,否则无法引用成功
    17. return {
    18. base: './',
    19. build: {
    20. publicDir: 'public',
    21. assetsDir: 'static',
    22. outDir: 'dist'
    23. },
    24. plugins: [
    25. vue(),
    26. AutoImport({
    27. // 自动导入 Vue 相关函数,如:ref, reactive, toRef 等
    28. imports: ['vue'],
    29. resolvers: [
    30. // 自动导入element plus相关函数(带样式)
    31. ElementPlusResolver(),
    32. // 自动导入图标组件
    33. IconsResolver({
    34. prefix: 'Icon',
    35. enabledCollections: ['ep']
    36. })
    37. ]
    38. }),
    39. Components({
    40. // 要搜索组件的目录的相对路径。默认 ['src/components']
    41. dirs: ['src'],
    42. // 组件的有效文件扩展名。
    43. extensions: ['vue'],
    44. // 搜索子目录
    45. deep: true,
    46. resolvers: [
    47. // 自动导入element plus组件
    48. ElementPlusResolver(),
    49. NaiveUiResolver(),
    50. // 自动注册图标组件
    51. IconsResolver({
    52. prefix: 'i',
    53. enabledCollections: ['ep']
    54. })
    55. ]
    56. }),
    57. Icons({
    58. compiler: 'vue3',
    59. autoInstall: true
    60. }),
    61. createSvgIconsPlugin({
    62. // 这个是自己配置的图标路径,指出来(自己咋配置的咋来)
    63. iconDirs: [resolve(process.cwd(), 'src/icons/svg')],
    64. // 这个表示id,按这个来就对了
    65. symbolId: 'icon-[dir]-[name]'
    66. }),
    67. vueI18n({
    68. include: resolve(__dirname, './path/to/src/locales/**')
    69. })
    70. ],
    71. resolve: {
    72. // 配置路径别名
    73. alias: {
    74. '@': resolve(__dirname, './src'),
    75. 'api': resolve(__dirname, './src/api'),
    76. 'views': resolve(__dirname, './src/views'),
    77. 'utils': resolve(__dirname, './src/utils'),
    78. 'comp': resolve(__dirname, './src/components'),
    79. 'assets': resolve(__dirname, './src/assets'),
    80. 'vue-i18n': 'vue-i18n/dist/vue-i18n.cjs.js'
    81. },
    82. extensions: ['.js', '.ts', '.vue', '.json', '.less', '.css']
    83. },
    84. define: {
    85. 'process.env': { // 环境变量通常可以从 process.env 获得。注意Vite默认是不加载env文件的
    86. VITE_APP_BASE_API: 'https://xxx.com'
    87. }
    88. },
    89. server: {
    90. hmr: true, // vue3 vite配置热更新不用手动刷新
    91. host: '0.0.0.0',
    92. port: 3000, // 端口
    93. open: false, // 启动项目后打开浏览器
    94. hot: true,
    95. overlay: {
    96. warning: false,
    97. error: true
    98. },
    99. proxy: {
    100. [env.VITE_APP_BASE_API]: {
    101. target: 'https://xxx.com',
    102. ws: true,
    103. changeOrigin: true,
    104. secure: false,
    105. rewrite: path => path.replace(RegExp(`^${env.VITE_APP_BASE_API}`), '')
    106. }
    107. }
    108. }
    109. }
    110. })
  • 相关阅读:
    HSV色彩空间 GRAY色彩空间
    金融企业为啥不选择云服务器还是考虑服务器托管
    Python实战项目:打乒乓(源码分享)(文章较短,直接上代码)
    网络诊断工具nslookup的使用
    ORACLE创建用户
    【ROS2】为什么要使用ROS2?《ROS2系统特性介绍》
    【黑马-SpringCloud技术栈】【01】完整的微服务技术栈_微服务技术对比
    SpringMVC三种风格的路径映射
    C++11重写muduo网络库3—Channel库(channel模块待补充完善)
    归并排序--排序算法
  • 原文地址:https://blog.csdn.net/Guoyu1_/article/details/134018061