js-sdkからの移行
このガイドでは、kintone/js-sdkのプラグイン/カスタマイズ開発ツールからcli-kintoneへ移行する方法を説明します。
概要
kintone/js-sdkは、プラグイン/カスタマイズ開発のためにいくつかのnpmパッケージを提供しています:
- @kintone/create-plugin - プラグインテンプレートの作成
- @kintone/plugin-packer - プラグインをzipファイルにパッケー ジ化
- @kintone/plugin-uploader - プラグインをkintoneにアップロード
- @kintone/customize-uploader - アプリカスタマイズをkintoneにアップロード/ダウンロード
cli-kintoneは、これらのツールを単一のCLIに統合しています。
なぜcli-kintoneに移行するのか
kintone/js-sdkからcli-kintoneへの移行には、以下のようなメリットがあります:
- 導入・学習コストの集約
- インターフェースと動作の改善
導入・学習コストの集約
kintone/js-sdkでは、プラグイン開発に必要な機能が複数のnpmパッケージに分散していました。 それぞれのパッケージを個別にインストールし、異なるコマンドとオプションを学習する必要がありました。
cli-kintoneでは、これらすべての機能を1つのCLIに統合しています。単一のツールをインストールするだけで、プラグ インの作成からアップロードまでのすべての操作が可能になり、学習コストが大幅に削減されます。
また、cli-kintone pluginという統一された名前空間のもとで、一貫したコマンド構造とオプション名を採用しています。
インターフェースと動作の改善
cli-kintoneでは、kintone/js-sdkの使用経験から得られたフィードバックをもとに、以下のような改善を行っています:
- 明示的な秘密鍵生成: 秘密鍵の生成を専用の
plugin keygenコマンドに分離し、鍵の生成の挙動がより明確になりました - 一貫したオプション設計: すべてのコマンドで統一されたオプション名(
--input、--outputなど)を採用し、直感的に使えるようになりました - 追加機能:
plugin infoコマンドにより、プラグイン情報を確認できるようになりました
また、一部のコマンドでは従来のjs-sdkから内部動作の改善を行なっています:
- plugin upload: kintone REST APIを利用するため、RPAで動作していた従来のplugin-uploaderに比べてアップロード時の動作が安定・高速化しています
ツールの比較
| js-sdkのツール | cli-kintoneのコマンド | 説明 |
|---|---|---|
| @kintone/create-plugin | plugin init | 新しいプラグインプロジェクトを初期化 |
| @kintone/plugin-packer | plugin pack | プラグインをzipファイルにパッケージング ※秘密鍵の生成は plugin keygenコマンドに分離 |
| @kintone/plugin-packer | plugin keygen | プラグイン用の秘密鍵を生成 |
| @kintone/plugin-uploader | plugin upload | プラグインをkintone環境にアップロード |
| - | plugin info | プラグイン情報を表示 |
| @kintone/customize-uploader | customize init | カスタマイズのマニフェストファイルの初期化 |
| @kintone/customize-uploader | customize apply | マニフェストファイルからkintone環境にカスタマイズを反映 |
| @kintone/customize-uploader | customize export | kintone環境からカスタマイズのマニフェストファイルを生成 |
主な違い
コマンド構造
- js-sdk: 各ツールは独立したnpmパッケージで、それぞれ独自のコマンドを持ちます
- cli-kintone: すべての開発用コマンドは
cli-kintone pluginとcli-kintone customize名前空間の下にあります
オプション名
一部のオプション名がツール間で異なります:
| 機能 | js-sdk | cli-kintone |
|---|---|---|
| 入力ディレクトリ/ファイル | 位置引数 | --input, -i |
| 出力ファイル | --out | --output, -o |
| 秘密鍵ファイル | --ppk | --private-key |
詳細なインターフェース差分については、コマンドごとのインターフェース・挙動差分および主な違いを参照してください。