Dart Pub Global 建立命令列應用程式(Windows)

法的空間發表於2019-08-12

最近想對專案的裡面的route進行改造,看了下阿里的路由註解, 因為沒法處理統一處理Package裡面的頁面.所以想自己來寫一套。

思考了下,無非是讀檔案寫檔案,本來考慮用C#直接寫一個工具的,但是最近看下成為一個優秀程式設計師的101個小建議中提到 不要選擇熟悉的技術,而應該是正確的⭐。 跟大佬瞭解了一下,決定使用dart寫一個命令列應用程式,還可以跨端執行。

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

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

環境變數

Windows10上面搜尋環境變數,如下圖

Dart Pub Global 建立命令列應用程式(Windows)

在Path中增加Dart的路徑,我這裡是1.1.5版本。

Dart Pub Global 建立命令列應用程式(Windows)

命令列輸入

dart --versionpub --version 驗證是否環境準備妥當

Dart Pub Global 建立命令列應用程式(Windows)

安裝dart腳手架

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

在Path當中新增pub cache的路徑,做flutter的小夥伴應該已經配置過了

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

命令列輸入 pub global activate stagehand 啟用stagehand

Dart Pub Global 建立命令列應用程式(Windows)

安裝完畢之後可以在你的賬號的AppData裡面找到它

Dart Pub Global 建立命令列應用程式(Windows)

其實你不安裝這個也行,用Android Studio建立一個Package,然後把flutter sdk從yaml檔案中移除就好了。安裝這個就是為了方便建立一個命令列程式。

建立專案

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

stagehand console-full

Dart Pub Global 建立命令列應用程式(Windows)

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

專案結構

用vscode開啟

Dart Pub Global 建立命令列應用程式(Windows)

入口為main.dart,點選debug執行,列印42

Dart Pub Global 建立命令列應用程式(Windows)

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

Dart Pub Global 建立命令列應用程式(Windows)

內褲

Dart Pub Global 建立命令列應用程式(Windows)

測試,Run和Debug可以點選,很明顯6*7=42,所以測試會通過

Dart Pub Global 建立命令列應用程式(Windows)

本地安裝

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

Dart Pub Global 建立命令列應用程式(Windows)

安裝完畢之後可以在你的賬號的AppData裡面找到它

Dart Pub Global 建立命令列應用程式(Windows)

執行

pub global run pub_demo

Dart Pub Global 建立命令列應用程式(Windows)
報錯提示找不到 pub_demo.dart。這裡要提一下,因為是以pub_demo進行安裝的,所以預設入口為pub_demo.dart,那麼我們稍加一些改動。

我們在bin下面增加一個pub_demo.dart,增加main入口,並且直接執行main.dart的main函式

Dart Pub Global 建立命令列應用程式(Windows)

然後我們重新安裝一下,再次執行

Dart Pub Global 建立命令列應用程式(Windows)

生成應用程式

在pubspec.yaml檔案中加入

executables:
  pub_demo:
複製程式碼

然後執行安裝命令 pub global activate --source path ./

Dart Pub Global 建立命令列應用程式(Windows)
你會發現多一行 Installed executable pub_demo.

現在你就可以直接執行 pub_demo

Dart Pub Global 建立命令列應用程式(Windows)

釋出

你可以通過命令將你的包釋出到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一下依賴

Dart Pub Global 建立命令列應用程式(Windows)

然後執行,就可以自動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全家桶,真香。

Dart Pub Global 建立命令列應用程式(Windows)

相關文章