Skip to content

开发服务器配置选项

开发服务器的功能,开发服务器的端口、代理、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

苏ICP备2025160170号-1 | 前端进化之路 | Released under the MIT License.