Flow CLI スーパーコマンドは、あなたのdAppの開発中に使用できるコマンド群であり、ワークフローを大幅にシンプルにします。その結果、あなたはスマートコントラクトの作成に集中でき、コマンドが残りの処理を行ってくれます。
Init
新しいFlowプロジェクトを開始する為の一番最初のコマンドはflow initです。最初にプロジェクトの設定に関するいくつかの質問が表示されます。その後、必要なファイルとフォルダが作成され、設定ファイルが構成され、あなたにとって必要なコアコントラクト依存群がインストールされます。
初期化のプロセス中に、flow init
はコア・スマートコントラクト(例えば、NonFungibleToken
)をインストールしてあなたのプロジェクトに設定するかどうかを尋ねてきます。コアコントラクトをインストールするを選択した場合は、CLIは裏でDependency Managerを使用して、必要なスマートコントラクトの依存関係を自動的にインストールします。
注:もし、
flow.json
ファイルを構成するだけでフォルダやファイルを作成したくない場合は、flow init --config-only
を実行することでそう出来ます。
以下コマンドを実行します。
> flow init $PROJECT_NAME
これは以下のフォルダとファイルを作成します。
-
/contracts
フォルダには、すべてのCadenceコントラクトを格納します。 -
/scripts
フォルダには、すべてのCadenceスクリプトを格納します。 -
/transactions
フォルダには、すべてのCadenceトランザクションファイルを格納します。 -
/tests
フォルダには、すべてのCadenceテストファイルを格納します。 -
flow.json
はプロジェクトの構成ファイルであり、自動的にメンテナンスされます。
Using Scaffolds
プロジェクトの目的に応じて、利用可能なスケルトン(scaffold)のリストから選択することができます。--scaffold
フラグを指定するだけでできます。次のようにします。
> flow init $PROJECT_NAME --scaffold
インタラクティブなスケルトン(scaffold)選択モードをスキップしたい場合は、 --scaffold-id
フラグを使用してIDを指定します。
> flow init $PROJECT_NAME --scaffold-id=1
スケルトン(scaffold)のリストは今後も増え続ける予定であり、皆様からの貢献を歓迎いたします。ご自身の足場(scaffold)リポジトリを作成することで、その後作成したリポジトリをこちらの指示に従ってスケルトン(scaffold)リストに追加することで貢献が可能です。
Testing
flow init
コマンドは、/tests
フォルダ内にサンプルのテストファイルも作成します。flow test
コマンドを使用することでそのテストを実行できます。
Develop
flow init
コマンドを使用してプロジェクトを作成した後、プロジェクト直下のディレクトリでflow emulator
コマンドを実行することでエミュレータを起動できます。エミュレータが起動したら、flowのエミュレータを使った開発用のコマンドを次のように実行します。
> flow dev
これは、あなたのプロジェクトのCadenceファイルを常に監視し、エミュレータ上にデプロイされたスマートコントラクトと同期を保ちます。
アウトプットは次のようになるでしょう。
[15:53:38] Syncing all the contracts...
😜 charlie
|- MyContract contracts/charlie/MyContract.cdc
😏 emulator-account
|- HelloWorld contracts/HelloWorld.cdc
コマンドが開始されると、Cadenceファイルへの変更を自動的に監視し、エミュレータのネットワーク上に継続的に変更箇所を同期します。エラーが発生した場合は、エラーも報告します。
IDEとしてVSCodeを使用し、IDEのターミナルウィンドウでコマンドを実行することをお勧めします。最新のVSCode拡張機能は、改善されたインポート構文の解決もサポートしています。詳しくは後述します。
⚠️ このコマンドはエミュレータネットワーク上でのみ動作しますのでご注意ください。これは開発専用であり、テストネットやメインネットネットワークとのやり取りは許可されていません。プロジェクトが完了したら、マイグレーションスーパーコマンドを使用してすぐにマイグレーションできます。また、このコマンドの実行には、エミュレータが起動していることが条件です。エミュレータを再起動した場合は、コマンドも再起動する必要があります。このコマンドは開発中に使用することを想定しており、スマートコントラクトの更新は、コントラクト削除と再デプロイをすることによって実行します。つまり、あなたが手動でコントラクトを操作した場合、アカウントストレージにリソースを保存している場合は、保存したアイテムがコントラクトが更新された後にもはや有効でなくなる可能性を持ちます。私たちのアドバイスは、まず開発に集中し自動テストを使用して正しい機能性を確認し、このサイクルが完了した後に、手動でコントラクトとやりとりすることです。また、これはまだ非常に実験的な機能であるため、私たちが使用状況から学習するにつれて、多くの変更や改善が行われる可能性があることにご注意おきください。
Deploying Contracts
スマートコントラクトを/contracts
フォルダに追加すると、自動的にdefault
アカウントにデプロイされます。このアカウントも、flow dev
の実行時に作成されます。
スマートコントラクトを別のアカウントに追加したい場合は、/contracts
フォルダ内にフォルダを作成し、そこにスマートコントラクトを追加するだけです。これにより、まずフォルダ名と同じ名前のアカウントが自動的に作成され、次にそのフォルダ内のすべてのスマートコントラクトが、新たに作成されたアカウントにデプロイされます。
例:A.cdc
という名前のスマートコントラクトをdefault
のアカウントに、B.cdc
という名前のスマートコントラクトをBob
という名前のアカウントにデプロイしたい場合、contractsフォルダ内のフォルダ構造は次のようになります。
/contracts
A.cdc
bob/
B.cdc
Import Schema
スマートコントラクトは名前で簡単にインポートできます。私達はスマートコントラクトのインポートに新しい方法を採用しました。これにより、ワークフローがシンプル化されます。
新しいインポートスキーマのフォーマットは次のようになります。
import "{name of the contract}"
例:
import "HelloWorld"
これはあなたのプロジェクト内で同名で作成したスマートコントラクトが自動的にインポートされて、その設定をflow.jsonに保存します。スマートコントラクトがdefault
以外のアカウントにデプロイされている場合でも問題ありません。
Learn More
初期セットアップ後の次のステップについてさらに詳しく知りたい場合は、以下のリンクを参照してください。
- Dependency Manager:CLIコマンドを使用してスマートコントラクト上の依存関係をインストールし管理します。
- Manage Configuration:プロジェクト構成ファイルの管理方法について説明します。
Last updated on Nov 5, 2024 by Alex
翻訳元->https://developers.flow.com/tools/flow-cli/super-commands