You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Windows环境Angular 6启动所有端口均提示被占用,求解决方案

解决Angular 6在Windows下所有端口均提示被占用的问题

针对你遇到的**无论指定哪个端口启动Angular项目都提示Port xxx is already in use**的诡异问题,我整理了几个经过验证的排查和解决方法,你可以按顺序尝试:

1. 彻底清理残留进程与缓存

有时候Angular CLI的进程会在后台静默残留(哪怕netstat查不到),或者npm缓存导致异常,按以下步骤操作:

  • 打开任务管理器,找到所有node.exeng.exe相关进程,全部结束
  • 在项目根目录运行命令清理npm缓存:
    npm cache clean --force
    
  • 删除项目根目录的node_modules文件夹和package-lock.json文件
  • 重新安装依赖:
    npm install
    
  • 尝试用一个冷门端口启动,比如:
    ng serve --port 5001
    

2. 检查并释放Windows预留端口

Windows系统会自动预留部分TCP端口,这些端口虽然netstat看不到占用,但无法被应用使用:

  • 管理员身份打开命令提示符,运行以下命令查看被系统排除的端口范围:
    netsh int ipv4 show excludedportrange protocol=tcp
    
  • 如果你尝试的端口出现在列表中,执行以下命令释放预留端口:
    net stop winnat
    net start winnat
    
  • 再次运行查看命令确认端口已被释放,然后重新尝试启动项目

3. 排查第三方安全工具拦截

关闭防火墙后仍有问题,可能是第三方杀毒软件、安全管家的网络保护功能在静默拦截:

  • 暂时禁用杀毒软件的实时防护、网络监控功能
  • 关闭所有后台运行的安全类工具
  • 再次尝试启动Angular项目

4. 修改Angular CLI默认端口配置

可以直接在项目配置文件中指定端口,避免每次手动输入:

  • 打开项目根目录的angular.json文件
  • 找到projects -> [你的项目名称] -> architect -> serve -> options节点
  • 添加"port": 5001(替换成你想使用的端口),比如:
    "options": {
      "port": 5001,
      // 其他原有配置...
    }
    
  • 保存后直接运行ng serve尝试启动

补充说明

从你的package.json配置来看,Angular 6的版本搭配是合理的,版本不匹配应该不是核心问题,重点还是放在进程残留、系统端口预留和第三方工具拦截上。

内容的提问来源于stack exchange,提问作者Anh Duc

火山引擎 最新活动