开发服务器配置选项
开发服务器的功能,开发服务器的端口、代理、CORS....
js
export default defineConfig({
server: {
// 众多配置项
},
})
host
指定服务器应该监听哪个 IP 地址
- 默认: 'localhost'
- 思考🤔 正常情况下就是 localhost 就好了呀,什么情况下还存在要修改 host 的情况呢?
- 除了 localhost 以外,我们经常还需要设置为 0.0.0.0 或者 true,表示监听所有的网络接口请求。有些时候需要多设备来测试应用。
port
指定服务器应该监听哪个端口 5173
strictPort
设为 true 时若端口已被占用则会直接退出,而不是尝试下一个可用端口
open
是否自动打开浏览器
https
启用 TLS + HTTP/2
- 当 server.proxy 选项 也被使用时,将会仅使用 TLS
- 需要一个合法可用的证书。对基本使用的配置需求来说,你可以添加 @vitejs/plugin-basic-ssl 到项目插件中,它会自动创建和缓存一个自签名的证书。
js
export default defineConfig({
server: {
// 如果是一个对象,可以指定 SSL 证书和私钥的路径
https: {
key: fs.readFileSync('/path/to/server.key'),
cert: fs.readFileSync('/path/to/server.crt')
},
},
});
proxy
配置代理
js
export default defineConfig({
server: {
proxy: {
'/foo': 'http://localhost:4567', // 将 '/foo' 前缀的请求代理到 'http://localhost:4567'
},
},
});
cors
为开发服务器配置 CORS
headers
为开发服务器配置自定义 HTTP headers
hmr
禁用或配置 HMR 连接
watch
自定义文件监视器的选项。这对于开发过程中的热模块替换(HMR)非常关键。背后其实使用的是 chokidar,一个 Node.js 的文件系统监听库,传递给 chokidar 的文件系统监听器选项
- 默认会忽略对 .git/ 和 node_modules/ 目录的监听
js
export default defineConfig({
server: {
watch: {
// 任何位于 ignored-directory 目录下的文件
// 或者任何目录下面的 some-specific-file.txt 文件
// 内容发生更改都不会触发 HMR
ignored: ['**/ignored-directory/**', '**/some-specific-file.txt'],
persistent: true, // 持续监听变化
usePolling: true, // 使用轮询
interval: 100, // 轮询间隔 100 毫秒
binaryInterval: 300 // 对于二进制文件的轮询间隔
} // watch: null 关闭文件监听
},
});
middlewareMode
为开发服务器配置中间件模式
base
在 HTTP 请求中预留此文件夹,用于代理 Vite 作为子文件夹时使用
fs
- strict 限制为工作区 root 路径以外的文件的访问
- allow 限制哪些文件可以通过 /@fs/ 路径提供服务。当 server.fs.strict 设置为 true 时,访问这个目录列表外的文件将会返回 403 结果
- deny 用于限制 Vite 开发服务器提供敏感文件的黑名单
- origin 用于定义开发调试阶段生成资产的 origin