AngularDart 4是否兼容Dart 2及build_runner 0.8?
解决Angular 4.x与build_runner 0.8不兼容的问题
你碰到的是Dart 2升级过程中典型的依赖冲突问题——Angular 4.x的构建相关依赖(比如angular_compiler)还基于旧版的build生态体系,而build_runner 0.8+已经适配了Dart 2稳定版的新构建标准,两者自然无法兼容。下面给你两个可行的解决方向:
方案1:升级Angular到兼容版本(推荐长期维护)
Angular 5.x及以上版本已经完全适配build_runner 0.8+和Dart 2稳定版,这也是官方推荐的升级路径。你可以修改pubspec.yaml如下:
name: JRapha description: A web app that uses AngularDart Components version: 0.0.1 environment: sdk: '>=2.0.0 <3.0.0' # 调整为Dart 2稳定版的版本范围 dependencies: angular: ^5.0.0 # 可选择更高的稳定版,比如^6.0.0 dev_dependencies: angular_test: ^2.0.0 # 同步升级angular_test到对应版本 build_runner: ^0.8.0 # 现在可以正常使用该版本 build_web_compilers: ^2.0.0 # 新增Web编译依赖
修改完成后,执行以下命令更新依赖:
pub get
如果遇到缓存问题,可以先运行pub cache repair再获取依赖。另外注意:Dartium在Dart 2稳定版后已被弃用,升级后建议用Chrome作为调试环境,通过webdev serve启动项目。
方案2:保留Angular 4.x,降级build_runner版本
如果暂时无法升级Angular,你可以将build_runner降级到0.7.x的稳定版本,这个版本和Angular 4.x的依赖体系兼容。修改pubspec.yaml的dev依赖部分:
dev_dependencies: angular_test: ^1.0.0 build_runner: ^0.7.15 # 使用0.7系列的稳定版
同样执行pub get完成依赖更新。
内容的提问来源于stack exchange,提问作者fredtma
相关产品推荐
相关产品推荐

