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

Angular 14.2.0编译时持续出现Strict mode不允许with语句的语法错误,删除相关文件/代码及缓存后仍未解决

Angular 14.2.0编译时持续出现Strict mode不允许with语句的语法错误,删除相关文件/代码及缓存后仍未解决

我太懂你这种摸不着头脑的崩溃了——明明已经移除了疑似问题的代码:

export { renderModule, renderModuleFactory } from '@angular/platform-server';

也按步骤操作了,结果编译时还是反复弹出Uncaught SyntaxError: Strict mode code may not include a with statement错误,而且问题还出现在.angular目录下的babel-webpack生成文件里,删了文件夹它还自动重建出带with (的代码,这确实离谱!

结合你遇到的编译阶段报错、缓存清理无效的情况,给你几个针对性的排查方向:

  • 检查依赖版本冲突
    Angular 14.2.0对babel、webpack这类编译工具有严格的版本匹配要求,很可能是项目里某些依赖(比如第三方库、自定义插件)偷偷引入了不兼容的babel版本,导致编译时生成了违规的with语句。可以运行下面的命令查看babel的版本树:

    npm ls @babel/core
    # 或者yarn项目用
    yarn list @babel/core
    

    如果发现多个版本的babel,建议在package.json里锁定Angular 14兼容的babel版本(大概是7.18.x系列),并清理冗余依赖。

  • 排查自定义webpack/babel配置
    如果你用了@angular-builders/custom-webpack扩展了编译配置,或者自己写了webpack.config.js,一定要检查有没有启用某些老旧的babel插件——有些旧插件会用with来处理作用域,在严格模式下就会触发报错。把这些插件替换成Angular官方推荐的版本,或者直接移除不必要的自定义配置试试。

  • 彻底清理缓存与依赖
    只删.angular目录可能不够彻底,试试这套完整的清理流程:

    1. 删除项目根目录下的node_modules文件夹
    2. 清理包管理器缓存:
      npm cache clean --force
      # yarn用户用
      yarn cache clean
      
    3. 重新安装所有依赖:npm install / yarn install
    4. 再删除.angular和dist目录,然后重新执行编译:ng build
  • 检查第三方库的兼容性
    有些老旧的第三方库本身的代码或编译产物里就包含with语句,在Angular的严格模式编译下就会触发错误。可以排查最近新增的依赖,或者逐个禁用可疑库来定位问题,找到后替换成更新的兼容版本。

  • 核对Angular编译配置
    打开tsconfig.json,检查compilerOptions里的strict是否为true,有没有意外开启noImplicitUseStrict(这个配置会影响严格模式的处理逻辑)。另外也可以看看angular.json的build配置项,有没有额外添加的babel/webpack参数导致异常。

你提到错误出现在.angular下的babel-webpack生成文件,说明问题出在Angular编译过程中的babel转换环节,重点围绕babel相关的依赖和配置排查,应该能找到根源。如果还是不行,可以尝试创建一个全新的Angular 14.2.0项目,对比它的依赖版本和配置文件,看看你的项目哪里存在差异。

备注:内容来源于stack exchange,提问作者Peter The Angular Dude

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 11:23:15