最近想对项目的里面的route进行改造,看了下阿里的路由注解, 因为没法处理统一处理Package里面的页面.所以想自己来写一套。
思考了下,无非是读文件写文件,本来考虑用C#直接写一个工具的,但是最近看下成为一个优秀程序员的101个小建议中提到 不要选择熟悉的技术,而应该是正确的⭐。 跟大佬了解了一下,决定使用dart写一个命令行应用程序,还可以跨端运行。
美好的一天从抄作业开始,这是财经龙大佬写的Pub Global,按照大佬的步骤,我在窗户儿(Windows)上面也走了下流程,下面我把要注意的说一下。
周末写快写完的草稿丢失,站长大人也找不回来,好心酸,凭着记忆和韧性又重新写了一遍,心酸好困
环境变量
Windows10上面搜寻环境变量,如下图
image在Path中增加Dart的路径,我这里是1.1.5版本。
image命令行输入
dart --version
和 pub --version
验证是否环境准备妥当
安装dart脚手架
stagehand,其实也是一个dart的命令行应用程序,帮助你创建命令行应用
在Path当中添加pub cache的路径,做flutter的小伙伴应该已经配置过了
C:\Users\xxxx\AppData\Roaming\Pub\Cache\bin
命令行输入
pub global activate stagehand
激活stagehand
安装完毕之后可以在你的账号的AppData里面找到它
image其实你不安装这个也行,用Android Studio创建一个Package,然后把flutter sdk从yaml文件中移除就好了。安装这个就是为了方便创建一个命令行程序。
创建项目
cd 到你的创建的一个目录里面,执行
stagehand console-full
然后执行下pub get
,把依赖都下载一下。
项目结构
用vscode打开
image
入口为main.dart,点击debug运行,打印42
image修改main.dart,打印参数,使用命令行执行
dart bin/main.dart 1234 5678
内裤
image
测试,Run和Debug可以点击,很明显6*7=42,所以测试会通过
image本地安装
执行下面命令,./表示当前目录,你也可以写绝对路径
pub global activate --source path ./
安装完毕之后可以在你的账号的AppData里面找到它
image
执行
pub global run pub_demo
报错提示找不到 pub_demo.dart。这里要提一下,因为是以pub_demo进行安装的,所以默认入口为pub_demo.dart,那么我们稍加一些改动。
我们在bin下面增加一个pub_demo.dart,增加main入口,并且直接执行main.dart的main函数
image
然后我们重新安装一下,再次执行
image生成应用程序
在pubspec.yaml文件中加入
executables:
pub_demo:
然后执行安装命令
pub global activate --source path ./
你会发现多一行
Installed executable pub_demo.
现在你就可以直接执行
pub_demo
发布
你可以通过命令将你的包发布到pub上面去,记得打开那个墙。。。
flutter packages pub publish --server=https://pub.dartlang.org
这里我简单做了一个assets_generator命令行工具,用来自动生成yaml文件中关于assets的配置信息的。
前景是我的混合开发项目,在ios端第一次安装启动的时候资源文件显示不出来,必须杀掉程序重新进才行。听网友说不能直接写到文件夹,要定义到文件。我的乖乖那多麻烦,所以就想着写了这个工具,然后并没有卵用(最后发生资源文件的个数居然会影响,我相信这一定是一个bug)。
我发布上去之后,你可以这样使用,在pubspec.yaml中引入
dev_dependencies:
assets_generator: ^1.1.1
然后get一下依赖
image然后执行,就可以自动pubspec.yaml中生成相关配置信息了。
assets_generator path=xxxx type=0
Parameter | Description | Default |
---|---|---|
path | 项目路径 | 如果不加默认为当前路径 |
type | 生成信息方式: 0 = 文件夹 ; 1 = 文件 | 0 |
结语
命令行应用程序还是蛮简单的,跟C#里面的命令行程序没什么区别,适合做一些脚本,让双手释放出来。
最后放上 assets_generator,欢迎加入Flutter Candies,一起生产可爱的Flutter 小糖果(QQ群:181398081)
最最后放上Flutter Candies全家桶,真香。
image
网友评论