是否存在仅清理指定文件的Flutter clean命令?
Flutter 精准清理指定构建产物实现方法
官方默认的flutter clean命令没有内置指定清理目标的参数,执行后会全量删除项目根目录下的build/目录、.dart_tool/下的构建缓存、各平台目录下的构建中间文件,所有增量构建缓存都会被清空,直接导致后续首次构建耗时大幅增加。
要实现仅清理指定目标文件/目录的效果,可以用下面两种方案:
手动精准删除目标路径
不需要执行全量清理命令,直接删除你需要清理的对应路径即可,常见场景对应的清理路径参考:- 仅清理Android端构建产物:删除
android/app/build目录,有Gradle缓存问题时额外删android/.gradle目录 - 仅清理iOS端构建产物:删除
ios/build目录,有CocoaPods依赖问题时额外删ios/Pods目录和ios/Podfile.lock文件 - 仅清理Web端构建产物:删除
build/web目录 - 仅清理Dart包配置缓存:删除
.dart_tool/package_config.json文件
删除完成后执行一次flutter pub get即可正常构建,未被删除的增量缓存会全部保留,构建速度和清理前几乎没有差异。
- 仅清理Android端构建产物:删除
自定义清理脚本实现固定规则清理
如果需要频繁做固定目标的清理,可以在项目根目录写自定义脚本,把需要清理的路径提前配置好,每次执行脚本就能自动完成精准清理,Mac/Linux环境下的bash脚本示例:#!/bin/bash # 按需注释/取消注释下面的清理路径,只保留你需要清理的目标 CLEAN_TARGETS=( # "build/web" # "android/app/build" "ios/build" # "ios/Pods" # ".dart_tool/package_config.json" ) for target in "${CLEAN_TARGETS[@]}" do if [ -e "$target" ]; then rm -rf "$target" echo "已完成清理: $target" fi done flutter pub get脚本保存为
custom_clean.sh后,执行chmod +x custom_clean.sh添加执行权限,后续需要清理时直接运行./custom_clean.sh即可。
注意:全量
flutter clean仅建议在遇到构建缓存损坏、Flutter大版本升级、跨大版本切换依赖后出现无法定位的编译错误时使用,日常开发不需要执行全量清理。
内容的提问来源于stack exchange,提问作者maykhid
相关产品推荐
相关产品推荐

