Flutter圈子Flutter中文社区flutterWeb

Dart Pub Global 创建命令行应用程序(Window

2019-08-14  本文已影响17人  法的空间

最近想对项目的里面的route进行改造,看了下阿里的路由注解, 因为没法处理统一处理Package里面的页面.所以想自己来写一套。

思考了下,无非是读文件写文件,本来考虑用C#直接写一个工具的,但是最近看下成为一个优秀程序员的101个小建议中提到 不要选择熟悉的技术,而应该是正确的⭐。 跟大佬了解了一下,决定使用dart写一个命令行应用程序,还可以跨端运行。

美好的一天从抄作业开始,这是财经龙大佬写的Pub Global,按照大佬的步骤,我在窗户儿(Windows)上面也走了下流程,下面我把要注意的说一下。

周末写快写完的草稿丢失,站长大人也找不回来,好心酸,凭着记忆和韧性又重新写了一遍,心酸好困

环境变量

Windows10上面搜寻环境变量,如下图

image

在Path中增加Dart的路径,我这里是1.1.5版本。

image

命令行输入

dart --versionpub --version 验证是否环境准备妥当

image

安装dart脚手架

stagehand,其实也是一个dart的命令行应用程序,帮助你创建命令行应用

在Path当中添加pub cache的路径,做flutter的小伙伴应该已经配置过了

C:\Users\xxxx\AppData\Roaming\Pub\Cache\bin

命令行输入
pub global activate stagehand 激活stagehand

image

安装完毕之后可以在你的账号的AppData里面找到它

image

其实你不安装这个也行,用Android Studio创建一个Package,然后把flutter sdk从yaml文件中移除就好了。安装这个就是为了方便创建一个命令行程序。

创建项目

cd 到你的创建的一个目录里面,执行

stagehand console-full

image

然后执行下pub get,把依赖都下载一下。

项目结构

用vscode打开


image

入口为main.dart,点击debug运行,打印42

image

修改main.dart,打印参数,使用命令行执行
dart bin/main.dart 1234 5678

image

内裤


image

测试,Run和Debug可以点击,很明显6*7=42,所以测试会通过

image

本地安装

执行下面命令,./表示当前目录,你也可以写绝对路径
pub global activate --source path ./

image

安装完毕之后可以在你的账号的AppData里面找到它


image

执行

pub global run pub_demo

image

报错提示找不到 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 ./

image
你会发现多一行
Installed executable pub_demo.

现在你就可以直接执行
pub_demo

image

发布

你可以通过命令将你的包发布到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中生成相关配置信息了。

Parameter Description Default
path 项目路径 如果不加默认为当前路径
type 生成信息方式: 0 = 文件夹 ; 1 = 文件 0

结语

命令行应用程序还是蛮简单的,跟C#里面的命令行程序没什么区别,适合做一些脚本,让双手释放出来。

最后放上 assets_generator,欢迎加入Flutter Candies,一起生产可爱的Flutter 小糖果(QQ群:181398081)

最最后放上Flutter Candies全家桶,真香。

image
上一篇下一篇

猜你喜欢

热点阅读