自动化清理你的Flutter项目

Flutter是一个流行的跨平台应用框架,但随着项目的增长,构建文件和缓存可能会占用大量空间。手动运行flutter clean可以解决这个问题,但当处理多个项目时,这个过程可能会变得繁琐且易于遗忘。因此我们可以使用脚本来批量清理Flutter 构建文件

思路

  1. 首先,你需要一个能够识别Flutter项目的标准。通常,Flutter项目目录中会包含pubspec.yaml文件。
  2. 接着,使用脚本遍历目录,查找含有pubspec.yaml文件的文件夹。
  3. 最后,对每个找到的Flutter项目执行flutter clean命令。

Windows 批处理脚本:

创建一个 clean_flutter_projects.bat 文件输入如下内容

bat 复制代码
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION

:: 设置脚本所在目录为搜索起点
SET START_DIR=%~dp0

:: 遍历目录寻找pubspec.yaml文件
FOR /R "%START_DIR%" %%D IN (.) DO (
    IF EXIST "%%~fD\pubspec.yaml" (
        ECHO Found Flutter project at %%D
        :: 进入项目目录
        PUSHD "%%D"
        :: 执行flutter clean
        CALL flutter clean
        :: 返回之前的目录
        POPD
    )
)

ECHO All Flutter projects cleaned.
ENDLOCAL

如何运行?

如下图,将批处理文件复制到项目根目录下,然后双击即可运行

执行效果

Mac Shell脚本: 打开终端,使用nanovim创建一个新的脚本文件,例如clean_flutter_projects.sh

shell 复制代码
#!/bin/bash

# 获取脚本所在的目录
START_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

# 遍历目录寻找pubspec.yaml文件,并执行flutter clean
find "$START_DIR" -name 'pubspec.yaml' | while read -r file; do
    # 获取Flutter项目的目录路径
    project_dir=$(dirname "$file")
    echo "Found Flutter project at $project_dir"
    # 进入项目目录
    cd "$project_dir" || exit
    # 执行flutter clean
    flutter clean
    # 返回到脚本开始的目录,以继续搜索
    cd "$START_DIR" || exit
done

echo "All Flutter projects cleaned."

确保给这个脚本文件执行权限:

shell 复制代码
chmod +x clean_flutter_projects.sh

和上面win做法一样,复制到项目根目录下,在终端执行

shell 复制代码
./clean_flutter_projects.sh
相关推荐
renke33643 小时前
Flutter for OpenHarmony:色彩捕手——基于HSL色轮与感知色差的交互式色觉训练系统
flutter
子春一5 小时前
Flutter for OpenHarmony:构建一个 Flutter 四色猜谜游戏,深入解析密码逻辑、反馈算法与经典益智游戏重构
算法·flutter·游戏
铅笔侠_小龙虾5 小时前
Flutter 实战: 计算器
开发语言·javascript·flutter
微祎_7 小时前
Flutter for OpenHarmony:构建一个 Flutter 重力弹球游戏,2D 物理引擎、手势交互与关卡设计的工程实现
flutter·游戏·交互
一起养小猫7 小时前
Flutter for OpenHarmony 实战_魔方应用UI设计与交互优化
flutter·ui·交互·harmonyos
hudawei9967 小时前
flutter和Android动画的对比
android·flutter·动画
一只大侠的侠8 小时前
Flutter开源鸿蒙跨平台训练营 Day7Flutter+ArkTS双方案实现轮播图+搜索框+导航组件
flutter·开源·harmonyos
一只大侠的侠9 小时前
Flutter开源鸿蒙跨平台训练营 Day9分类数据的获取与渲染实现
flutter·开源·harmonyos
一只大侠的侠9 小时前
Flutter开源鸿蒙跨平台训练营 Day 5Flutter开发鸿蒙电商应用
flutter·开源·harmonyos
ZH154558913110 小时前
Flutter for OpenHarmony Python学习助手实战:GUI桌面应用开发的实现
python·学习·flutter