Flutter 知识集锦 | Dart 开发命令行工具

在开始本篇之前,请确保命令行中可以支持 dart 命令,如果没有请下载 Dart SDK 或者 Flutter SDK。

我们的目的是通过 dart 语言编写可支持程序,并在命令行中访问:


1. 创建一个 Dart 项目

Dart 之于 Flutter 相当于 Java 之于 Android。 Dart 作为一个 编程语言 其作用当然不仅限于 Flutter ,我们也可以创建一个纯 Dart 的项目。本案例的项目 github 开源地址 【toly】

创建 Dart 项目的方式很多,比如这里可以通过 IntelliJ IDEA 开发工具。

其实就算用 txt 文本编辑器也可以创建项目,不用太纠结。Dart 项目和 Flutter 一样也是通过 pubspec.yaml 文件管理项目的,项目结构如下:

这里只有一个在 bin 文件夹下的 toly.dart 文件,其中的逻辑处理很简单:

遍历入参列表,通过 int 进行解析,然后累加输出结果。

dart 复制代码
void main(List<String> arguments) {
  int sum = 0;
  String msg = '';
  for (int i = 0; i < arguments.length; i++) {
    int? arg = int.tryParse(arguments[i]);
    if (arg != null) {
      msg += '$arg+';
      sum += arg;
    }
  }
  msg = msg.substring(0, msg.length - 1);
  print('$msg=$sum');
}

可以在命令行中通过 dart 执行文件来查看效果。其中参数间通过空格分离:


2. dart pub global 命令

我们将通过 dart pub global 相关命令,让 dart 文件生成的可执行文件在全局被调用。官方也有详细的 文档介绍 pub-global。 首先我们要做两个准备工作:

  • 1\]. 在 pubspec.yaml 的最后,添加 `executables` 节点,将 toly 作为可执行命令:

executables:
toly:

复制代码
想要把地址为 /Volumes/coder/toly/cli/toly 的项目,通过全局命令行访问,可以执行如下命令:
> dart pub global activate --source path 项目地址

如果你没有配置 **.pub-cache/bin** 的环境变量,将会由下面的 Warning,提示你需要配置以及如何配置环境变量。这个 Warning 并`不会影响`可执行项目的成功安装。

![image.png](https://file.jishuzhan.net/article/1745685697651544065/82513795694b81c2a9453475c81ff0e1.webp)

*** ** * ** ***

* \[2\]. 将 **.pub-cache/bin** 加入环境变量

安装的可执行文件都会放在这个文件夹中,所以想要全集访问,需要将这个文件夹放入环境变量:

![image.png](https://file.jishuzhan.net/article/1745685697651544065/e5e0430a5a8b4c0a51e0c4d38875b0ed.webp)

*** ** * ** ***

安装成功之后,你可以在 **.pub-cache/bin** 文件夹中看到可执行文件的存在:

![image.png](https://file.jishuzhan.net/article/1745685697651544065/84e1baf15242567ca78b0a15dfc608a8.webp)

然后在命令行中,就可以使用 toly 命令处理逻辑了,是不是很 nice :

![image.png](https://file.jishuzhan.net/article/1745685697651544065/43bb9ca01f2665730756e79b92ae4fca.webp)

*** ** * ** ***

另外,通过 `dart pub global list` 命令可以查看所有的安装可执行文件:

```lua
---->[input]----
dart pub global list                                               

---->[output]----
devtools 2.0.0
protoc_plugin 20.0.1
stagehand 4.0.1
toly 0.0.1 at path "/Volumes/coder/toly/cli/toly"

另外,通过 dart pub global deactivate 命令可以移除可执行文件:

lua 复制代码
---->[input]----
dart pub global deactivate toly                                               

---->[output]----
Deactivated package **toly** 0.0.1 at path "/Volumes/coder/toly/cli/toly".

3. 上传到 pub 仓库

如果你写了一个很优秀的脚本工具,想分享给别人使用,把本地文件拷贝给用就比较麻烦。 pub 作为一个公开的仓库,我们可以把代码上传,这样任何人都可以通过网络直接安装你的命令行工具。执行如下命令进行发布:

dart pub publish --server pub.dartlang.org

注意这里需要进行认证,要科学上网:

上传成功后会提示信息:

然后在 pub 上可以查看到相关的类库 【toly】,上面也介绍了安装的方式:

dart pub global activate toly

这样任何人都可以便捷地使用你开发的命令行工具,之前写过 Flutter Icon 代码生成的脚本,也可以通过命令行的形式更方便调用。后面有时间,会写点有趣的东西放在 toly 里,敬请期待 ~

相关推荐
李堇5 小时前
android滚动列表VerticalRollingTextView
android·java
一只大侠的侠5 小时前
Flutter开源鸿蒙跨平台训练营 Day 3
flutter·开源·harmonyos
lxysbly6 小时前
n64模拟器安卓版带金手指2026
android
一只大侠的侠6 小时前
【Harmonyos】Flutter开源鸿蒙跨平台训练营 Day 2 鸿蒙跨平台开发环境搭建与工程实践
flutter·开源·harmonyos
微祎_7 小时前
Flutter for OpenHarmony:构建一个 Flutter 平衡球游戏,深入解析动画控制器、实时物理模拟与手势驱动交互
flutter·游戏·交互
ZH15455891318 小时前
Flutter for OpenHarmony Python学习助手实战:面向对象编程实战的实现
python·学习·flutter
renke33649 小时前
Flutter for OpenHarmony:构建一个 Flutter 色彩调和师游戏,RGB 空间探索、感知色差计算与视觉认知训练的工程实现
flutter·游戏
游戏开发爱好者89 小时前
日常开发与测试的 App 测试方法、查看设备状态、实时日志、应用数据
android·ios·小程序·https·uni-app·iphone·webview
王码码20359 小时前
Flutter for OpenHarmony 实战之基础组件:第三十一篇 Chip 系列组件 — 灵活的标签化交互
android·flutter·交互·harmonyos
黑码哥9 小时前
ViewHolder设计模式深度剖析:iOS开发者掌握Android列表性能优化的实战指南
android·ios·性能优化·跨平台开发·viewholder