Skip to content

基本配置

Base 路径

vite.config.js

js
import { defineConfig, loadEnv } from 'vite'

export default defineConfig(({mode}) => {
    // 根据当前模式获取配置文件【.env.development / .env.production】
    const viteEnv = loadEnv(mode, process.cwd())
    // 获取当前模式下的
    const { VITE_PUBLIC_PATH, VITE_PROXY_API } = viteEnv
    return {
        base: VITE_PUBLIC_PATH,
    }
})

.env.production

bash
# 开发环境请求后端接口路径
VITE_BASE_API = '/index.php'

# 开发环境入口地址前缀
VITE_PUBLIC_PATH = './'

# 代理路径
VITE_PROXY_API = 'http://127.0.0.1:2222'

修改build后文件的文件名

原始文件名有以下几个参数:

  • [name]:文件名
  • [hash]:自动生成的hash
  • [ext]:文件后缀
js
import { defineConfig } from 'vite'
// 生成时间戳
const version = new Date().getTime();

export default defineConfig(({mode}) => {
    return {
        build: {
            rollupOptions: {
                output: {
                  entryFileNames: `assets/[name]-[hash].${version}.js`, // 入口文件
                  chunkFileNames: `assets/[name]-[hash].${version}.js`, // 模块文件
                  assetFileNames: `assets/[name]-[hash].${version}.[ext]` // 资源文件
                }
            }
        }
    }
})

指定端口和可访问ip

js
export default defineConfig(({mode}) => {
    return {
        server: {
            host: '0.0.0.0', // 设置服务器监听的IP地址,‘0.0.0.0’或 true 时监听所有地址
            prot: 9999, // 设置启动的端口
            strictPort: false, // 设置为ture时如果有其他服务占用了端口会直接退出,而不是尝试下一个可用端口
            open: true, // 服务器启动时,自动在浏览器打开程序
        }
    }
})

代理

js
export default defineConfig(({mode}) => {
    return {
        server: {
            proxy: {
                '/api': {
                    target: http://aaron.com/v1, // 要代理到的url
                    ws: true, // 是否想代理websockets
                    changeOrigin: true, // 是否修改request请求的host,*注意在浏览器上看不到效果,服务器获取host才能看到效果,默认值false
                    prependPath: true, // 是否将目标路径添加到代理路径之前
                }
            }
        }
    }
})

访问上述路径:/api/login ---> http://aaron.com/v1/api/login

全部proxy的options属性:https://github.com/http-party/node-http-proxy#options

关于changeOrigin的详细说明:https://juejin.cn/post/7151966465606811678

配置@地址

文件系统路径别名

将在项目中路径使用的【@】的替换为路径【/src】

export default defineConfig(({mode}) => {
    return {
        resolve: {
            alias: {
                '@': resolve(__dirname, 'src')
            }
        }
    }
})

官方文档:https://cn.vitejs.dev/config/shared-options.html#resolve-alias