DartでさくっとCLIツール作成。
2023.02.28
この記事は最終更新日から1年以上が経過しています。
どもです。
今年は何かとDartを扱って行くだろうということで、まずはサクッとCLIツールの作成を行って行きたいと思います。
今回の内容は主にDartの公式ドキュメントの記載されていますので、詳細に関してはそちらを参照していただければと思います。
Dart公式ドキュメント
https://dart.dev/tutorials/server/get-started
DartPad
早速、Dartを書いて行きたいのですが、Dartをサクッと試したい場合、ブラウザで実行可能なPlayGround環境の「DartPad」も用意されていますので、わざわざファイルとして作成する必要もない場合はこちらで試しても良いですね。
DartPad
Dartをインストール
それでは、Mac環境にdartをインストールしていきます。
brewでインストール可能となっております。
Mac
$ brew tap dart-lang/dart brew install dart
こちら、Flutter SDKをインストールしていればdartもインストール済みとなっております。
Flutter SDK
https://docs.flutter.dev/get-started/install
Dartがインストールされたか確認。
$ dart --version
Dart SDK version: 3.0.0-179.0.dev (dev) (Fri Jan 27 21:59:59 2023 -0800) on "macos_arm64"
version: 3.0.0-179.0.devのバージョンがインストールされているのが確認できる。
CLIアプリを作成
dartコマンドでアプリの雛形を生成します。
-tオプション「console」でコンソールアプリの雛形生成となります。
$ dart create -t console cli
生成されたファイルは以下の通り。
.gitignore analysis_options.yaml CHANGELOG.md pubspec.yaml README.md bin/cli.dart lib/cli.dart test/cli_test.dart
それでは早速、アプリを実行。cliフォルダに移動し、dart runコマンドで実行。
$ cd cli $ dart run
以下の様に表示。
dart run Building package executable... Built cli:cli. Hello world: 42!
「Hello world: 42!」がプログラムより出力された内容ですね。
bin/cli.dartのファイルを確認。
import 'package:cli/cli.dart' as cli; void main(List<String> arguments) { print('Hello world: ${cli.calculate()}!'); }
Hello world文字列とcli.calculate()関数を実行しているのがわかります。
calculate()関数は以下のファイルに定義されています。
lib/cli.dart
int calculate() { return 6 * 7; }
いやぁ。
すぐにCLIツール(コンソールアプリ)の実装に入れるので超便利ですね。
テスト
テストファイルも生成されております。
test/cli_test.dart
import 'package:cli/cli.dart'; import 'package:test/test.dart'; void main() { test('calculate', () { expect(calculate(), 42); }); }
dart testコマンドでテストを実行できます。
$ dart test Building package executable... (2.7s) Built test:test. 00:00 +1: All tests passed!
本番用コンパイル
本番で利用できるようにコンパイルを行います。
こちらもdartコマンド、「dart compile」を用いて行います。
$ dart compile exe bin/cli.dart
実行するとcli.exeファイルが生成されます。
exeオプションでself-containedとなり、Dartランタイムが無い環境でも実行可能ファイルが生成されます。しかしながら、exe拡張子はMacで実行できないので、Macで実行できるようにMacの実行ファイル形式に出力します。
$ dart compile exe bin/cli.dart -o bin/cli
-oオプションをつけ、 bin/cliでファイルを作成。
ターミナルで実行。
$ ./bin/cli Hello world: 42!
超簡単にコンソールアプリの作成が行えました。
その他にも、コンパイル方式としてAOT(Ahead Of Time)、JIT(Just In Time)なども選択できます。
種類は以下の通り。
Available subcommands: aot-snapshot Compile Dart to an AOT snapshot. exe Compile Dart to a self-contained executable. jit-snapshot Compile Dart to a JIT snapshot. js Compile Dart to JavaScript. kernel Compile Dart to a kernel snapshot.
と言った感じで、ざっとDartでCLIツールの作成行いました。
諸々、Dart、Flutterを扱って行こうかと思います。
ではではぁ。
Comment
Related Article
CATEGORY LIST
- ActionScript
- AI・Bot・algorithm
- Android
- Angular2
- C
- C#
- C++
- Chromebook
- Cocos2d-x
- CSS
- CSS3
- Dart
- Docker
- Dreamweaver
- EC-CUBE
- Excel
- Fireworks
- Flash
- Flutter
- Game
- Git
- go
- HTML
- HTML5
- Illustrator
- InDesign
- iPad
- iPhone
- Java
- JavaScript
- jQuery
- Linux
- mac
- MySQL
- Photoshop
- PHP
- Python
- RaspberryPi
- Ruby
- Rust
- Swift
- tool
- ubuntu
- Unity
- windows
- WordPress
- イベント
- エラー
- サーバー
- スマートフォン
- モバイル
- 暗号通貨、ブロックチェーン
- 自作OS
- 電子工作