在颤振构建之前运行自定义命令?

Red*_*ter 11 protocol-buffers dart flutter

我正在构建一个使用协议缓冲区的 flutter 应用程序,我想.proto在构建过程中编译该文件。如何在 flutter 构建的 dart 编译之前运行自定义 shell 命令?

Bas*_*usa 7

我相信你可以在 Android Studio 中做到这一点。

1. 前往Run > Edit Configurations

在此输入图像描述

2. 添加新的 Shell 脚本配置(+) Add New Configuration > Shell Script

在此输入图像描述

3. 设置 shell 脚本执行。Apply完成后请务必点击。但先不要关闭它。

在此输入图像描述

4. 选择Flutter > Run/main.dart > Before Launch > (+)Add > Run Another Configuration

在此输入图像描述

5. 选择您的 Shell 脚本配置

在此输入图像描述

6. 单击Apply,然后单击OK。您配置的 Shell 脚本现在将运行。

在此输入图像描述

  • 如果您单独开发应用程序,这很有效,但如果您在团队中,则每个成员都需要执行此操作。在我们的团队中,有些人使用 Android Studio,而其他人则使用 VS Code。 (4认同)

Ben*_*ing 5

Flutter 还没有这个功能,最好有一个预构建脚本。

简单的预构建脚本

my-pre-build.sh

# my-pre-build.sh (run some commands)
Run Code Online (Sandbox Code Playgroud)

用法

./my-pre-build.sh && flutter build apk
Run Code Online (Sandbox Code Playgroud)

使用 Make 抽象构建

您还可以使用Makefile之类的东西来抽象构建,我认为这使事情变得更简单。

Makefile(在项目的根目录中)

# Build for Android (runs build-proto first)
build-apk: build-proto
    flutter test
    flutter build apk

# Build for iOS (runs build-proto first)
build-ios: build-proto
    flutter test
    flutter build ios

# Proto generation (calls terminal proto commands)
build-proto:
    proto-native-lib compile -f *.proto

Run Code Online (Sandbox Code Playgroud)

用法

# Build for Android (runs build-proto first)
build-apk: build-proto
    flutter test
    flutter build apk

# Build for iOS (runs build-proto first)
build-ios: build-proto
    flutter test
    flutter build ios

# Proto generation (calls terminal proto commands)
build-proto:
    proto-native-lib compile -f *.proto

Run Code Online (Sandbox Code Playgroud)

这是在不同构建类型之间捆绑重复命令和重用脚本的有用方法。