title: 本是同根生:Dart 開發環境
date: 2019-04-25
categories: Flutter
keywords:
Dart 除了可以開發 Flutter 之外,其實也可以拿來開發 Web 程式,例如 AngularDart、Aqueduct,當然開發環境最重要的就是要安裝 Dart SDK,如果開發過 Flutter 的人大概都知道,我們所安裝的 Flutter SDK 其實已經包含了 Dart SDK,但是直接用它來開發 Flutter 以外的程式就會發現問題叢叢,上網搜尋有些人會說它是一個不完全的 SDK,建議另外再安裝完整的 Dart SDK 來開發,這不是很詭異的問題,難道 Flutter 是使用特製版本的 Dart SDK 嗎?今天我們就來嘗試補足它的不足之處。
Dart SDK 位於 Flutter SDK 資料夾內的
\bin\cache\dart-sdk\
下,筆者 Flutter SDK 是安裝於D:\Tools\flutter\
。![]()
連到 Aqueduct 官方網站 可以看到它的說明,Aqueduct 是一個可以利用 Dart 來開發後端 REST API。
{% blockquote Aqueduct https://aqueduct.io/ One framework. Everything you need. %}
Aqueduct is an extensible HTTP framework for building REST APIs on top of the Dart VM. It includes a statically-typed ORM, OAuth 2.0 provider, automated testing libraries and OpenAPI 3.0 integration.
{% endblockquote %}
接下來我們可以看到5行安裝以及啟動指令:
{% codeblock %}
brew install dart
pub global activate aqueduct
aqueduct create my_app
cd my_app
aqueduct serve
{% endcodeblock %}
第1行安裝 Dart SDK 指令我們就直接忽略,因為我們已經安裝了 Flutter SDK,現在要想辦法直接利用其內含的 Dart SDK。
第2行指令 pub global activate aqueduct
是利用 Dart SDK 內含的 pub 來安裝 Aqueduct CLI,不出意外系統一定找不到 pub 指令。
嘗試搜尋 Dart SDK 資料夾就可以發現 pub.bat 位於 SDK 的 bin
資料夾內。
接下來為了可以在任何路徑呼叫,所以我們將 bin
資料夾路徑加入到環境變數 Path
內。
其實查看
bin
資料夾就可以發現 Dart 相關指令的執行檔都在這個目錄下。![]()
重新再執行指令 pub global activate aqueduct
,可以發現可以正常安裝 Aqueduct CLI,另外我們從最下方的訊息得知,pub 安裝所安裝的套件啟動指令都放在 %APPDATA%\Pub\Cache\bin\
下,也建議我們將該路徑加入倒 Path
環境變數內。
往上一層觀看 %APPDATA%\Pub\Cache\
也可以知道 Dart 安裝的套件也放在此,可是 Flutter SDK 目錄下的 .pub-cache
資料夾也是存放套件的位置,難道不能放在一起嗎?
查看官方文件 Configuring Pub Environment Variables 可以知道 Dart SDK 提供一個環境變數 PUB_CACHE
讓我們可以修改儲存路徑。
因此我們就直接新增 PUB_CACHE
環境變數,並將路徑指向 Flutter SDK 內的 .pub-cache
資料夾。
但是別忘了套件的執行指令會放在 bin
資料夾,所以我們在環境變數 Path
內在增加路徑 %PUB_CACHE%\bin
。
重新再安裝一次 Aqueduct CLI,可以看到確實安裝在 .pub-cache
資料夾內。
接下來透過 CLI 指令 aqueduct create my_app
來建立一個名為 my_app 的 aqueduct 專案。
最後切換到 my_app
路徑,並透過 CLI 指令 aqueduct serve
來啟動專案。
透過瀏覽器開啟 http://localhost:8888/ 可以看到雖然找不到頁面,但是確實正常運作。
連到範例頁面 http://localhost:8888/example 就可以看到測試資料。
![]()
%APPDATA%\Pub\
已經用不到了,所以其實可以刪除掉。 DART_SDK
,並指向 Dart SDK 路徑,所以我們可以自己手動增加該變數。Path
內的路徑也可以調整為 %DART_SDK%\bin
。