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

如何解决ASP.NET Boilerplate(ABP 3.4.1)Angular项目生产构建失败问题

解决ABP 3.4.1生产构建失败的问题

第一个错误:"let-" is only supported on ng-template elements

这个报错的核心原因是Angular版本演进后,let-语法仅支持绑定在<ng-template>标签上,而你的代码里还在使用旧的<template>标签写法。

修复步骤:

  • 根据报错提示定位到对应的模板文件(就是那个包含表格循环的组件模板),把里面的<template>标签全部替换成<ng-template>。
  • 替换时保持原有绑定逻辑不变,比如:
    <!-- 原错误代码 -->
    <template ngFor [ngForOf]="rows" let-rowz="$implicit" let-index="index">
    <!-- 修正后代码 -->
    <ng-template ngFor [ngForOf]="rows" let-rowz="$implicit" let-index="index">
    
  • 修改完成后重新执行yarn run ng build --prod,这个错误应该就能消除。

第二个错误:关闭AOT后的Promise拒绝与语法错误

当你添加--aot=false后出现的语法问题,大概率是因为部分第三方依赖(比如你用到的日期选择器组件)包含未转译的ES6语法,关闭AOT后构建流程没有对这些依赖做转译处理。但非常不推荐在生产环境关闭AOT——AOT编译能大幅提升应用运行性能、减小打包体积,是生产构建的标准配置,所以优先解决第一个错误才是正确路径。

如果只是临时排查问题,可以尝试在项目配置文件(旧版本是.angular-cli.json,新版本是angular.json)中,将相关依赖加入allowedCommonJsDependencies列表,确保构建时能正确转译它们,但这只是临时方案,还是建议回到修复<template>标签的正轨上。

额外提示:

ABP 3.4.1对应的Angular版本相对老旧,记得确认你的Node.js和Yarn版本与该ABP版本兼容,避免因环境版本不匹配引发额外问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:40:09