Vite 默认端口启动被拒绝解决办法

Vite默认端口号 5173启动遇到如下错误:

bash 复制代码
    error when starting dev server:
    Error: listen EACCES: permission denied ::1:5173
        at Server.setupListenHandle [as _listen2] (node:net:1918:21)
        at listenInCluster (node:net:1997:12)
        at GetAddrInfoReqWrap.callback (node:net:2206:7)
        at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:134:8)
     ELIFECYCLE  Command failed with exit code 1.

解决办法改个端口号就行:

ts 复制代码
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react-swc";

export default defineConfig({
  plugins: [react()],
  server: {
    host: 'localhost',
    port: 3000
  }
});

排查步骤

permission denied 被拒绝首先想到端口占用了,以管理员身份打开 PowerShell 输入命令查看是被哪个程序占用。

PowerShell 复制代码
netstat -ano | findstr :5173

结果什么也没输出,换个已启用的3000端口查看,发现有输出,命令没问题。

PowerShell 复制代码
PS C:\Windows\system32> netstat -ano | findstr :3000

TCP    [::1]:3000             [::]:0                 LISTENING       23644

经检索 https://github.com/vitejs/vite/issues/5801 提到可能是有 windows 保留端口导致的 vite 默认端口号不起作用。

通过 netsh interface ipv4 show excludedportrange protocol=tcp 命令可以用来检查系统保留的端口范围:

PowerShell 复制代码
协议 tcp 端口排除范围

开始端口    结束端口
----------    --------
      ....        ....
      5172        5271
      ....        ....

破案了,5172 到 5271 之间的端口被保留了,我安装了 docker 和 WSL2,电脑未重启前正常,重启后因为保留端口的问题,vite 默认端口号 5173 在保留范围内,所以启动项目被拒绝了,就如开头解决方法一样,换个端口号就行了。

相关推荐
荒诞英雄2 天前
从 17MB Vendor 大包到按需加载:Vite 多入口 Vue 组件库首屏优化实践
vue.js·vite
程序员晓琪3 天前
深入解析:从 Webpack 到 Vite,多入口多端项目的工程化迁移实战
前端·webpack·vite
Momo__4 天前
Vite 8.1 打包开发模式——10000 组件冷启动 15 倍,"No Bundle Dev" 七年后被自己终结
前端·vue.js·vite
Forever7_4 天前
Vite Plus 终于放大招!一行命令,直接迁移项目!
vite
飞天狗5 天前
Webpack 切 Vite,不是把配置换名字那么简单
webpack·vite
木木的木云7 天前
从零构建微前端框架:PavilionMfe 设计揭秘
前端·架构·vite
ejinxian8 天前
Vite+ 发布新版本-整合前端工具链
前端·vite·vite+
晓得迷路了13 天前
栗子前端技术周刊第 135 期 - Vite 8.1、Rspack 2.1、Babel 8.0...
前端·javascript·vite
ZhengEnCi14 天前
Q04-Vite禁用CSS代码分割-解决生产环境样式加载顺序混乱问题
前端·vue.js·vite
PedroQue9914 天前
Vite插件体系1.0.0:API稳定,生产就绪
前端·vite