You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular 15升级至16时ESBuild被拦截,如何跳过ESBuild完成升级?

Angular 15升级到16绕过ESBuild的解决方案

为什么升级时会启动ESBuild.exe?

Angular 16将ESBuild设为默认构建工具,ng update命令在升级过程中会自动执行验证构建步骤,确保依赖安装完成后项目能正常构建,这个过程会调用ESBuild的二进制文件(ESBuild.exe),因此被ThreatLocker拦截导致升级失败。

无需运行ESBuild完成升级的方法

方法1:手动修改依赖并安装(完全跳过ng update的自动流程)

  1. 修改package.json中的版本号
    将所有Angular核心包的版本统一改为16.x的稳定版(例如16.2.14,建议选16系列的最新补丁版),同时调整兼容的依赖版本:

    • @angular/core、@angular/cli、@angular/common等所有@angular/开头的包:改为16.x.x
    • @angular-devkit/build-angular:改为对应16.x的版本(与@angular/cli版本一致)
    • typescript:改为5.0.x或5.1.x(Angular 16要求TypeScript 5.0-5.1)
    • zone.js:改为0.13.x(兼容Angular 16的版本)
    • 其他非Angular依赖可暂时保持当前版本,后续再单独升级
  2. 清理旧依赖文件
    删除项目根目录下的node_modules文件夹和package-lock.json(如果用yarn则删除yarn.lock)

  3. 安装新依赖
    执行命令:

    npm install
    

    此过程仅安装依赖包,不会触发构建操作,因此不会启动ESBuild.exe。

  4. 手动同步Angular配置
    升级完成后,检查angular.json文件:如果需要继续使用Webpack而非ESBuild,将projects.[你的项目名].architect.build.builder修改为:

    "@angular-devkit/build-angular:browser-webpack"
    

    这样后续执行ng serve或ng build时会使用Webpack构建,避免触发ESBuild。

方法2:使用ng update的跳过验证参数

直接执行带--skip-verify参数的升级命令,跳过升级后的验证构建步骤,从而避免启动ESBuild.exe:

ng update @angular/core@16 @angular/cli@16 --skip-verify

该命令会自动更新package.json并安装依赖,但不会运行构建验证,因此不会触发ESBuild。

后续注意事项

如果后续需要使用ng serve或ng build,要么联系IT临时解除ESBuild.exe的拦截,要么按照方法1的步骤切换回Webpack构建,否则构建命令仍会触发ESBuild.exe。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 08:31:14