get_cli版本演进全记录从初版到1.9.1Dart 3适配背后的技术决策【免费下载链接】get_cliOfficial Getx CLI项目地址: https://gitcode.com/gh_mirrors/ge/get_cliget_cli 是 GetX™ 框架的官方命令行工具一条命令即可创建 Flutter / get_server 项目、生成页面、控制器、路由与数据模型。本文以 CHANGELOG.md 为线索带你从零版 Beta 一路复盘到当前 1.9.1 版本重点拆解它为了适配 Dart 3 所做的关键取舍——这些决策直接关系到你写出来的代码能不能在新版 Dart 上顺利编译。一眼看懂get_cli 版本里程碑先给出一张时间线帮助建立整体框架完整明细见CHANGELOG.md阶段版本核心变化起步期0.3.0 → 0.9.x初版 Beta、remove 命令、自动创建路由首个大版本1.0.0 → 1.1.0支持 get_server、从 JSON/URL 生成模型功能完善1.2.0 → 1.4.x双框架兼容、on子模块、CLI 国际化、getx别名语言升级1.5.0 → 1.8.2支持 null safety、替换 dcli、多语言翻译面向 Dart 31.9.0 → 1.9.1Dart 3 约束、强制 null safety、yaml 解析修复初版到 1.0从零搭建核心命令 get_cli 的第一次正式发布是0.3.0Initial Beta Release随后快速补齐了基础能力0.5.0加入get remove可以卸载依赖0.6.0加入get -v版本号命令0.7.0 ~ 0.8.8引入 CleanArktekko结构并逐步完成arc screen全套模板0.9.0创建页面时自动创建路由这是后来很多便利功能的起点。真正的分水岭是1.0.0支持 get_server 纯服务端项目1.0.1从 JSON 生成 model1.0.2进一步支持从 URL 生成1.1.0支持在指定models文件夹下批量生成。从 0.x 到 1.0 的关键词是「补齐能力」——把创建项目、页面、模型这三件最常用的事做扎实。1.2 ~ 1.4体验打磨与国际化 进入 1.x 后演进重心转向「用得爽」1.2.0getx 与 get_server双框架完全兼容get init同时支持两种项目1.3.0新增on命令支持在页面内继续创建子页面1.3.15create controller自动生成并加入 binding并新增getconnectprovider1.4.0为 CLI 本身引入国际化新增sort命令整理路由与 import1.4.4 / 1.4.5提供getx别名与-i / -c / -g快捷参数敲命令更省字。这一步让 get_cli 从「能跑」进化到「好上手」也为后续多语言文档中、德、土、意等打下基础。1.5.0 的转折null safety 正式入场 ⚡1.5.0的更新只有一行Add support to null safety。别小看它——这是应对 Dart 2.12 空安全改造的第一步。随后的 1.6.0、1.7.0 都在持续修 null-safety 相关 bugmodel 生成、Windows 路径、Arc 清理命令等。换句话说空安全适配是一个跨多个小版本的长期过程而非一次开关。1.8.2用 dcli 替换 cli_dialog 1.8.2做了一件很典型的重构用 dcli 替换掉原来的 cli_dialog。为什么要换因为dcli维护更活跃、对新 Dart 版本更友好是后续能顺利适配 Dart 3 的重要前置条件。同时这一版还给菜单加了默认值、统一了 lint。依赖选择往往是「为未来铺路」的决策——这一步在当时看不出波澜却在 1.9.0 时回报了红利。1.9.0Dart 3 适配背后的 4 个技术决策 1.9.0是本次复盘的核心。它一次性完成了面向 Dart 3 的收尾pubspec.yaml中的 SDK 约束被写死为3.0.0 4.0.0。背后的决策可以拆成四步决策一把 SDK 下限抬到 Dart 3在pubspec.yaml中明确sdk: 3.0.0 4.0.0直接放弃对旧版 Dart 的兼容。这意味着 get_cli 只服务于现代工具链换取更干净的语言特性使用。决策二强制 null safety移除可选项早期 get_cli 还保留着一个「是否开启 null safety」的开关和dart migrate迁移命令。Dart 3 时代空安全已是默认且不可关闭于是团队先移除了dart migrate迁移逻辑再彻底移除 nullsafe 选项让空安全成为强制项。这一步删掉的不是功能而是「已经过时的选择项」是典型的做减法。决策三模板代码升级为 super 参数生成 view 的模板文件lib/samples/impl/get_view.dart被改成符合 Flutter 的use_super_parameters写法例如构造函数直接写作const $_viewName({super.key})。这样 CLI 生成的新代码天生就是现代风格不会触发 lint 警告。决策四对齐 Flutter 2.10同步适配 Flutter 2.10并修复了中文翻译确保新工具链下的生成结果可用。小结1.9.0 的价值不在「加了什么」而在「敢删什么」——删掉旧兼容、删掉可选项、删掉过时写法整体向 Dart 3 收敛。1.9.1一个 yaml 解析的收尾修复 紧跟其后的1.9.1只修了一处Fix yaml parse error。这看似小修实则关键——get_cli 需要频繁解析pubspec.yaml来识别项目类型、读取依赖。解析器一抖整条创建/生成链路都会受影响因此被单独作为一个版本快速修复并合入。幕后机制get update 是怎么判断「该升级」的很多人不知道get_cli 每次运行都会做一次克制的版本检查逻辑位于lib/functions/version/version_update.dart通过CliConfig.updateIsCheckingToday()判断当天是否已检查过避免每次调用都请求网络若未检查则调用 pub 接口拉取get_cli最新版号与本地pubspec.lock中的版本号做Version比较若有新版就提示你运行get update并打印那个熟悉的 GETX 大字 Logo见lib/functions/version/print_get_cli.dart本地版本读取由lib/commands/impl/version/version.dart中的get -v命令负责。这套「每天最多查一次」的缓存设计让升级提示既及时又不打扰。新手上手如何查看与更新 get_cli 版本 ️如果你手上已经是旧版本三步跟上 1.9.1# 查看当前版本 get -v # 升级到最新版等价 get upgrade get update想通读完整变更历史也可以把仓库拉到本地再翻阅CHANGELOG.mdgit clone https://gitcode.com/gh_mirrors/ge/get_cli写在最后从 0.3.0 的 Beta 到 1.9.1get_cli 的演进主线非常清晰先补齐创建能力 → 再打磨使用体验 → 最后为 Dart 3 做减法收敛。1.9.0 的四个决策抬 SDK 下限、强制空安全、升级模板写法、对齐 Flutter 2.10正是「适配新语言」这类升级的标准姿势——与其无限兼容旧世界不如果断面向未来。理解这条脉络你既能看懂 changelog也能预判下一个大版本可能砍掉什么。【免费下载链接】get_cliOfficial Getx CLI项目地址: https://gitcode.com/gh_mirrors/ge/get_cli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考