下载flutter 源码
我这里使用的是1.22.2,用的是fvm管理的包
fvm install 1.22.2
下载aspect源码
git clone https://github.com.cnpmjs.org/XianyuTech/aspectd.git
使用aspectd
- 切换到flutter的git目录
cd ${path-for-git-flutter}
- 将aspectd源码中的git patch文件合并到源码工程中
在上面切换的目录下执行:
git apply --3way xxx/aspectD/0001-aspectD.path
其中0001-aspectd.patch文件在aspectd源码中。
- 删除原有flutter sdk目录下的缓存文件
rm bin/cache/flutter_tools.stamp
- 重新构建新的flutter编译工具:
flutter doctor -v
这个时候会重新生成flutter_tools.stamp文件
运行aspectd项目
想要运行aspectd项目,需要在aspectd_impl、example及根目录下执行pub get
如果上面pub get没问题的话,就可以执行下面命令,让项目运行起来
flutter run --debug --verbose
踩坑
aspectd源码的pubspec.yaml中指定的kernel为
dependency_overrides:
kernel:
git:
url: [email protected]:alibaba-flutter/sdk.git
ref: stable/v1.22.2
path: pkg/kernel
但实际使用的时候,一直下载不下来,
建议使用本地的。
- 下载阿里改造过的dart源码
git clone https://github.com/XianyuTech/sdk.git
这个如果能够直接成功可以直接看第二步,我是不成功的。因为太大,缓存不够
先浅层clone,再fetch
git clone https://github.com/XianyuTech/sdk.git --depth 1
cd sdk
git fetch --unshallow
使用上面方式clone下来的,只有master分支,想要所有分支,再执行如下命令:
git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
git fetch -all
2.切换dart源码aspectd项目中pubspec.yaml指定的ref上
git checkout stable/v1.22.2
3.在pubspec.yaml中指定为本地依赖
dependency_overrides:
kernel:
path: /Users/wenxuemao/custom/flutter/sdk/pkg/kernel
这个时候pub get没问题了,执行flutter run --debug --verbose就可以运行起来项目了。
参考文章
Flutter aspectd入门指引
Flutter Aop方案之闲鱼AspectD(1)