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

Angular10升级至17时遇命名空间导出成员缺失等错误求助

Angular 10升级到11.2.9错误解决方案

针对你升级过程中遇到的三类错误,逐一给出解决步骤:

1. TS2694:@angular/core/core无导出成员ɵɵFactoryDeclaration、ɵɵNgModuleDeclaration

这类错误源于直接使用了Angular内部私有API,或依赖库版本不兼容:

  • 排查项目代码:搜索是否有手动导入/使用ɵɵFactoryDeclaration、ɵɵNgModuleDeclaration的代码,这些是Angular内部实现,禁止在业务代码中直接使用,替换为CLI自动生成的模块/组件声明逻辑。
  • 适配依赖版本:检查第三方库(如ngx-intl-tel-input)是否兼容Angular 11,若版本过低,升级到对应兼容版本。

2. TS2304:找不到名称i1

这个错误是变量未定义或拼写错误:

  • 全局搜索项目中的i1,定位到未声明的位置:
    • 若为模板中使用的变量,确保组件类中已定义该变量;
    • 若为拼写错误(如误写i18n为i1),修正拼写即可;
    • 若来自第三方库模板,升级库到兼容Angular 11的版本。

3. ngx-intl-tel-input无法从非ESM模块导入BsDropdownDirective、CommonModule

该问题是ngx-intl-tel-input与Angular 11模块系统、依赖库版本不匹配导致:

  • 升级ngx-intl-tel-input:Angular 11对应兼容版本为^4.0.0,将package.json中该依赖改为"ngx-intl-tel-input": "^4.0.0";
  • 调整ngx-bootstrap版本:Angular 11需搭配ngx-bootstrap 6.x(7.x对应Angular 12),修改为"ngx-bootstrap": "^6.2.0";
  • 配置TypeScript:在tsconfig.json中确保allowSyntheticDefaultImports: true和esModuleInterop: true,解决非ESM模块的导入兼容问题。

依赖修改后执行命令

npm install
# 或
yarn install

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 14:51:05