Dart Pub Global 建立命令行應用程序(Windows)

最近想對項目的裏面的route進行改造,看了下阿里的路由註解, 由於無法處理統一處理Package裏面的頁面.因此想本身來寫一套。ios

思考了下,無非是讀文件寫文件,原本考慮用C#直接寫一個工具的,可是最近看下成爲一個優秀程序員的101個小建議中提到 不要選擇熟悉的技術,而應該是正確的⭐。 跟大佬瞭解了一下,決定使用dart寫一個命令行應用程序,還能夠跨端運行。git

美好的一天從抄做業開始,這是財經龍大佬寫的Pub Global,按照大佬的步驟,我在窗戶兒(Windows)上面也走了下流程,下面我把要注意的說一下。程序員

週末寫快寫完的草稿丟失,站長大人也找不回來,好心酸,憑着記憶和韌性又從新寫了一遍,心酸好睏github

環境變量

Windows10上面搜尋環境變量,以下圖函數

在Path中增長Dart的路徑,我這裏是1.1.5版本。工具

命令行輸入post

dart --versionpub --version 驗證是否環境準備穩當測試

安裝dart腳手架

stagehand,其實也是一個dart的命令行應用程序,幫助你建立命令行應用spa

在Path當中添加pub cache的路徑,作flutter的小夥伴應該已經配置過了命令行

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

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

安裝完畢以後能夠在你的帳號的AppData裏面找到它

其實你不安裝這個也行,用Android Studio建立一個Package,而後把flutter sdk從yaml文件中移除就行了。安裝這個就是爲了方便建立一個命令行程序。

建立項目

cd 到你的建立的一個目錄裏面,執行

stagehand console-full

而後執行下pub get,把依賴都下載一下。

項目結構

用vscode打開

入口爲main.dart,點擊debug運行,打印42

修改main.dart,打印參數,使用命令行執行 dart bin/main.dart 1234 5678

內褲

測試,Run和Debug能夠點擊,很明顯6*7=42,因此測試會經過

本地安裝

執行下面命令,./表示當前目錄,你也能夠寫絕對路徑 pub global activate --source path ./

安裝完畢以後能夠在你的帳號的AppData裏面找到它

執行

pub global run pub_demo

報錯提示找不到 pub_demo.dart。這裏要提一下,由於是以pub_demo進行安裝的,因此默認入口爲pub_demo.dart,那麼咱們稍加一些改動。

咱們在bin下面增長一個pub_demo.dart,增長main入口,而且直接執行main.dart的main函數

而後咱們從新安裝一下,再次執行

生成應用程序

在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一下依賴

而後執行,就能夠自動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全家桶,真香。

相關文章
相關標籤/搜索