HubSpot CLIコマンド
このガイドは、HubSpotのローカル開発ツールで使用できるコマンドとファイル形式のオプションのリファレンスとしてご利用ください。ツールの使い方の概要については、ローカル開発のチュートリアルを参照してください。
HubSpotのローカル開発ツールは、グローバル(推奨)またはローカルにインストールできます。HubSpotツールをグローバルにインストールするには、コマンドラインで以下のコマンドを実行します。詳しくは、パッケージをグローバルまたはローカルにインストールする手順(英語)ご確認ください。
ツールを現在のディレクトリーにのみインストールするには、以下のコマンドを実行します。CLIがすでにグローバルにインストールされている場合、ローカルにインストールする必要はありません。
インストール時にEACCESエラーが発生した場合
パッケージをグローバルにインストールする際のNPM Resolving EACCESアクセス許可エラー(英語)をご参照ください。
CLIは定期的に更新されます。最新バージョンのローカルツールにアップグレードするには、次のコマンドを実行します。
CLIは@hubspot/cms-cli
から@hubspot/cli
に変更されました。古いcms-cliを使用している場合は、削除してから新しいバージョンをインストールする必要があります。
ご使用のバージョンを確認するには、次のコマンドを実行します。
hs --version
バージョン番号が3.0.0未満の場合は、古いバージョンです。
古いバージョンをアンインストールするには、次のように実行します。
npm uninstall -g @hubspot/cms-cli
全てのコマンドを表示します。
特定のコマンドについて詳しく調べるには、そのコマンドに--help
を付けて入力します。
現在のディレクトリー内にhubspot.config.yml
ファイルを作成し、アカウントの認証を設定します。新しいアカウントの認証を既存の設定ファイルに追加するには、authコマンドを実行します。アカウントに使用する名前の入力が求められた際、この名前にスペースを含めることはできません。
CMSパーソナル アクセス キーを使用して、HubSpotアカウントに対する認証を生成します。こちらでアクセスキーを生成することができます。既存のhubspot.config.yml
ファイルがある場合は、このコマンドを使用して他のアカウントの資格情報を追加できます。例えば、サンドボックスアカウントを開発環境として使用できます。アカウントに使用する名前の入力が求められた際、この名前にスペースを含めることはできません。
設定ファイル内の各アカウントの名前、ID、認証タイプを表示します。期待したアカウントが表示されない場合、authコマンドを実行してアカウントを設定ファイルに追加する必要があります。
設定ファイル内に既定のアカウントを指定します。
Parameter | Description |
---|---|
accountNameOrID
| 新しいデフォルトアカウントをその名前(設定ファイルに設定されている名前)またはIDで識別します。 |
CLIを使用すると、デベロッパー ファイル システム(デザインマネージャーのファイルシステム)とやり取りできます。
デベロッパー ファイル システムに保存されているファイルの一覧を、パスに基づいて、またはルートから表示します。コンピューターの現在のディレクトリーを表示する標準のls
と同じように使用できます。
引数 | Description |
---|---|
dest
任意
| ファイルの一覧を表示する、リモートのデベロッパー ファイル システム上のディレクトリーを示すパス。省略した場合、既定でアカウントのルートが使用されます。 |
ファイル、またはディレクトリーとその子フォルダーおよびファイルをパスで取得します。
これにより、ファイルがHubSpotアカウントからローカル環境に取り込まれます。<src>は、HubSpotデザインツールからのパスです。<dest>は、ファイルの追加先とするローカルディレクトリーです。
ファイルを取得しても、既定では既存のローカルファイルは上書きされません。上書きする場合は、--overwrite
を指定してください。
引数 | Description |
---|---|
src
必須
| HubSpotデザインツールのパス |
dest
任意
| ファイルを配置するローカルディレクトリーのパス(現在の作業ディレクトリーを基準にした相対パス)。この引数は、省略すると既定で現在の作業ディレクトリーになります。 |
オプション | Description |
---|---|
--account
| 取得元の 古いバージョンのCLIとの下位互換性を確保するために、 |
--overwrite
| 取得したファイルで既存のファイルを上書きします。 |
--mode
| HubSpotからファイルの下書きバージョンと公開バージョンのいずれを取得するかを指定します。 |
新規ローカルアセットをHubSpotアカウントにアップロードします。このコマンドによってアップロードした変更は、即座に公開されます。
引数 | Description |
---|---|
src
必須
| ローカルファイルのパス(現在の作業ディレクトリーを基準にした相対パス)。 |
dest
必須
| HubSpotデザインツールのパス。新規のパスも指定できます。 |
オプション | Description |
---|---|
--account
| 取得元の 古いバージョンのCLIとの下位互換性を確保するために、 |
--mode
| アップロードされたファイルをHubSpotで公開するかどうかを指定します。詳しくは「モード」のセクションをご覧ください。 |
サブコマンド | Description |
---|---|
filemanager
| 指定したsrcディレクトリーをファイルマネージャーにアップロードします(デザインマネージャー上のデベロッパー ファイル システムではなく)。 ※アップロードされたファイルは公開に設定され、URL経由で誰でも表示できるようになります。ファイルの表示に関する設定の詳細に関しては、ヘルプドキュメントをご参照ください。 |
ローカルディレクトリーを監視し、ファイルが保存されると変更内容をHubSpotアカウントに自動的にアップロードします。保存時に行った変更は即座に公開されます。
watch
を使用する場合は、次の点に留意してください。
- 監視対象のファイルをローカル側で削除しても、HubSpotからは自動的に削除されません。ファイルを削除するには、
--remove
を使用します。 - ローカル側でフォルダーの名前を変更すると、新しいフォルダーが新しい名前でHubSpotにアップロードされます。HubSpot上にある既存のフォルダーは自動的には削除されません。フォルダーを削除するには、
--remove
を使用します。
従来のwatchコマンドでは、現在のディレクトリーが即座にアップロードされ、その後変更の監視が開始されていましたが、v2.0でこの動作は「監視のみ」に変更されました。
引数 | Description |
---|---|
src
必須
| ファイルが含まれているローカルディレクトリーのパス(現在の作業ディレクトリーを基準にした相対パス)。 |
dest
必須
| HubSpotデザインツールのパス。新規のパスも指定できます。 |
オプション | Description |
---|---|
--account
| 取得元の 古いバージョンのCLIとの下位互換性を確保するために、 |
--mode
| アップロードされたファイルをHubSpotで公開するか下書きとして保存するかを指定します。詳しくは、「モード」のセクションをご確認ください。 |
--initial-upload
| ファイル保存が発生する前に初回のアップロードを実行します。 |
--remove
| ローカル環境にないファイルがHubSpotアカウント上にある場合に削除を実行します。 |
--notify=<path/to/file>
| watchが起動され、作業がアイドル状態になると、指定されたファイルにログを記録します。 |
このコマンドは現時点ではベータ版です。ご意見は、開発者SlackやCLIのgithub issueにてお寄せください。
デベロッパー ファイル システム内のファイルを特定のディレクトリーから別のディレクトリーに移動します。ローカル環境に保存しているファイルへの影響はありません。
引数 | Description |
---|---|
src
必須
| ファイルが含まれているリモートのデベロッパー ファイル システム上のディレクトリーへのパス。 |
dest
必須
| デベロッパー ファイル システム内の移動先パス。 |
オプション | Description |
---|---|
--account
| ファイル移動先となる 古いバージョンのCLIとの下位互換性を確保するために、 |
新規アセットのフォルダー/ファイルを作成します。
引数 | Description |
---|---|
type
必須
| アセットのタイプ。サポートされるタイプ: |
name
必須
| 新しいアセットの名前 |
dest
任意
| 新規アセットの宛先フォルダー(現在の作業ディレクトリーを基準にした相対パス)。省略すると、既定で現在の作業ディレクトリーになります。 |
HubSpotアカウントからファイル、またはフォルダーとそこに格納されているファイルを削除します。ローカル環境に保存されているファイルとフォルダーは削除されません。このコマンドにはrmというエイリアスがあります。
引数 | Description |
---|---|
path
必須
| HubSpotデザインツールのパス |
オプション | Description |
---|---|
--account
| ファイルを削除する 古いバージョンのCLIとの下位互換性を確保するために、 |
HubDBコマンドは、現在開発者プレビューの段階です。現時点でも使用できますが、今後変更が加えられる可能性があります。開発者プレビューには、Developer Beta Terms(開発者向けベータ版利用規約)(英語)が適用されます。
これらのコマンドを使用して、HubDBテーブルの全ての行の作成、削除、取得、消去を行うことができます。これらのコマンドを使用するには、HubSpotアカウントにHubDBへのアクセス権が付与されている必要があります。
HubSpotアカウント上に新しいHubDBテーブルを作成します。
引数 | Description |
---|---|
src
必須
| HubDBテーブルの生成に使用するローカルJSONファイル。 |
オプション | Description |
---|---|
--account
| HubDBを作成する 古いバージョンのCLIとの下位互換性を確保するために、 |
特定のHubDBテーブルのデータをコンピューターにダウンロードします。
引数 | Description |
---|---|
tableId
必須
| HubDBダッシュボードで確認可能なHubDBテーブルのid。 |
dest
|
|
オプション | Description |
---|---|
--account
| HubDBの取得元とする 古いバージョンのCLIとの下位互換性を確保するために、 |
特定のHubDBテーブル内の全ての行を消去します。
引数 | Description |
---|---|
tableId
必須
| HubDBダッシュボードで確認可能なHubDBテーブルのid。 |
オプション | Description |
---|---|
--account
| HubDBの行を消去する 古いバージョンのCLIとの下位互換性を確保するために、 |
指定したHubDBテーブルをアカウントから削除します。
引数 | Description |
---|---|
tableId
必須
| HubDBダッシュボードで確認可能なHubDBテーブルのid。 |
オプション | Description |
---|---|
--account
| HubDBを削除する 古いバージョンのCLIとの下位互換性を確保するために、 |
サーバーレス関数を作成してデバッグするには、これらのコマンドを使用します(CMS Hub Enterpriseのみ)。
アカウント上にある全ての関数、エンドポイント、メソッド、使用しているシークレット名、および最終更新日のリストを出力します。
引数 | Description |
---|---|
--account
| hubspot.configからのHubSpotアカウントのニックネーム。defaultAccountが 古いバージョンのCLIとの下位互換性を確保するために、 |
--compact
| エンドポイント名とメソッドのみが表示されます。 |
--json
| 全ての関数のデータを含むJSONがコマンドラインに出力されます。JSONデータには、ポータルID、関数ID、ルーティング、アセットの未加工パス、メソッド、シークレット、作成日、最終変更日が含まれます。 |
サーバーレス関数からのログを出力します。実行後の関数に格納されている全てのconsole.log
を表示します。ログには実行時間も記録されています。ログは90日間保存されます。
引数 | Description |
---|---|
endpoint-name
必須
| serverless.jsonファイルで定義されたエンドポイント名。関数ファイルへのパスではありません。 |
オプション | Description |
---|---|
--file
| function.logにログを出力します。 |
--follow
| サーバーレス関数の実行時に最新の情報を取得するために、ログの末尾を表示します。 |
--latest
| 最新のログのみを出力します |
--account
| hubspot.configからのHubSpotアカウントのニックネーム。defaultPortalがhubspot.config内に設定されていない場合、このパラメーターは必須です。 古いバージョンのCLIとの下位互換性を確保するために、 |
--compact
| ログの出力/情報を非表示にします。正常終了/エラーと実行時間を返します。 |
--limit=<number>
| ログ出力の量を制限します |
エラーA server error occurred:警告:The logs for this function have exceeded the 4KB limit(この関数のログは4KBの上限を超えています)
が表示された場合、ログが大きすぎます。このエラーの原因は、巨大なオブジェクトが含まれるコンソールログまたは多数のコンソールログを出力しようとしたことにあります。解決するには、ログの出力を抑えるように調整してから、エンドポイントに対しコマンドを実行し直してみてください。
シークレットを関数に開示する(シークレットを使用する特定のエンドポイントに開示したり、全てのエンドポイントで利用できるようにグローバルに開示したりする)には、serverless.json
ファイルをシークレット名で更新します。
引数 | Description |
---|---|
secret-name
必須
| 名前またはシークレット。 |
secret-value
必須
| シークレットの値(認証の詳細など)。 |
サーバーレス関数内で使用できるシークレットの値をアカウント内で更新します。次に、シークレットの値を求められます。
引数 | Description |
---|---|
secret-name
必須
| 名前またはシークレット。 |
secret-value
必須
| シークレットの値(認証の詳細など)。 |
シークレット(英語)をアカウントから削除して、サーバーレス関数内で使用不可にします。このコマンドを実行した後で、serverless.json
ファイルを編集してシークレットの名前を削除します。
引数 | Description |
---|---|
secret-name
必須
| 削除するシークレットの名前。 |
add secretsコマンドを使用して保存済みのシークレットを把握するために、アカウント内のシークレット(英語)の一覧を表示します。
開発者はHubSpotのさまざまな機能を頻繁に利用します。こうした機能はコマンドラインから直接、簡単に開くことができます。defaultAccount
または--account
の引数を使用して、アカウント上の関連付けられたツールを開くことができます。
引数 | Description |
---|---|
shortcut
必須
| ブラウザーで開くショートカットの完全な名前またはショートカットのエイリアスを指定します。 |
引数 | Description |
---|---|
--list
必須
| 全てのショートカット、エイリアス、および参照先のリストを表示します。 |
CLIを頻繁に使用する場合は、Tabでコマンドの入力を補完すると便利です。
Mac OS Xの場合:
ローカルテンプレートのフォーマットアノテーションについては、テンプレートドキュメントを参照してください。また、CMSテーマボイラープレート(英語)で確認することもできます。
ローカルモジュールは、それぞれモジュールの各コンポーネントを指定する一連のファイル内で書式設定されます。ローカルでモジュールを開発する方法については、ローカルモジュール開発リファレンスを参照してください。
既定でHubSpotによって自動適用されるルールがあります。この既定を上書きする方法はありません。
以下は常に無視されます。
hubspot.config.yml
/hubspot.config.yaml
node_modules
- 依存関係.*
- 非表示のファイル/フォルダー*.log
- NPMエラーログ*.swp
- vim状態のスワップファイルIcon\\r
- Mac OSのカスタムFinderアイコン__MACOSX
- Macリソースフォーク~
LinuxバックアップファイルThumbs.db
- Windows画像ファイルキャッシュehthumbs.db
- Windowsフォルダー設定ファイルDesktop.ini
- Windowsカスタムフォルダー属性情報@eaDir
- サーバーによってサムネイルが保存されるWindows Synology DiskStationの「非表示」フォルダー
# ignore all files within a specific directory
/ignore/ignored
# ignore a specific file
/ignore/ignore.md
# ignore all .txt files
*.txt
# ignore all log files - useful if you commonly output serverless function logs as files.
*.log
--modeオプションを指定すると、HubSpotにアップロードされたローカルでの変更を公開するかどうかを指定できます。このオプションは各コマンドに追加することも、hubspot.config.ymlファイル内に既定として設定することもできます。
--modeのオプションは、--mode=draft、--mode=publishの2つです。
--modeを指定する場合、次の優先順位が適用されます。
- コマンドに--modeを含めると、他の全ての設定よりも優先されます。
- hubspot.config.yml内でアカウントごとにdefaultModeを設定すると、コマンドに毎回--modeを含める必要がなくなります。この場合、最上位の設定よりも優先されます。
- hubspot.config.yml内で最上位にdefaultModeを設定すると、全てのアカウントに対して既定で--modeが設定されます。これにより既定の動作よりも優先されます。
- --modeの既定の動作はpublishです。
hubspot.config.ymlファイルには、HubSpotアカウントの資格情報が含まれています。設定方法については、開始のガイドを参照してください。既存の設定ファイルをアップロードするには、authコマンドを実行してください。
CLIのv1.0.10(2020年3月リリース)からv1.0.11では、hs init
を実行すると、設定ファイルが/Users/<username>/hubspot.config.yml
に配置されていました。
設定ファイルの場所を明確にするために、このコマンドを実行すると、設定ファイルがコマンドを実行したフォルダー内に配置されるように従来の動作に戻しました。設定ファイルは移動しなくても、問題なく機能します。ファイルをプロジェクトファイルとまとめて管理する場合は、ファイルをこのディレクトリーからプロジェクトフォルダーに移動しても問題ありません。このファイルには認証の資格情報が含まれているので、バージョン管理にはコミットしないでください。
上記以外のバージョンのCMS-CLIを使用してこのコマンドを実行した場合、コマンドを実行したフォルダー内に設定ファイルが配置されます。
名前 | Description |
---|---|
defaultPortal
任意
| 操作するアカウントを指定する |
defaultMode
任意
| アカウント、下書き、公開に使用するモード。 |
allowUsageTracking
任意
| HubSpotにローカル開発ツールの使用状況をトラッキングする権限を許可するかどうかを指定します。既定では |
名前 | Description |
---|---|
portalId
必須
| 認証を設定するアカウントのアカウントID。 |
authType
必須
| 特定の入力に使用される認証方式。 |
name
任意
| アカウント名を指定するパラメーター。コマンドの操作対象となるアカウントを指定するために使用できます。上記の例では |
defaultMode
任意
| アカウント、下書き、公開に使用するモード。 |
HubSpot CLIでは環境変数の使用をサポートしています。これは、GitHubアクションなどの自動化を作成する際に特に便利です。
hubspot.config.yml
の代わりに環境変数を使用するには、コマンドの実行時に--use-env
フラグを使用します。
名前 | Description |
---|---|
HUBSPOT_PORTAL_ID
必須
| HubSpotアカウントID。 |
HUBSPOT_PERSONAL_ACCESS_KEY
推奨
| HubSpotアカウント上の特定のユーザーのパーソナル アクセス キー。全ての更新がこのユーザーに関連付けられます。 |
HUBSPOT_API_KEY
| HubSpotアカウントに関連付けられているHubSpot APIキー。 |
HUBSPOT_CLIENT_ID
| OAuthクライアントID。 |
HUBSPOT_CLIENT_SECRET
| OAuthシークレット。 |
CLIには、アセットの提出前にマーケットプレイスの要件を満たすために実行できる自動テストが用意されています。全ての自動テストに合格することで必ず審査プロセスに合格できるという意味ではありません。単純な自動化以上の品質を担保するために、審査が実施されます。
テーマの検証コマンドを使用すると、テーマの自動テストを素早く実行して、アセットマーケットプレイスへの提出前に修正しておく必要がある問題を特定できます。これはCLIでは、テーマ内のアセットを表すグループに分けられ、エラーと成功のリストとして返されます。
引数 | Description |
---|---|
src
必須
| ローカル テーマ フォルダーのパス(現在の作業ディレクトリーを基準にした相対パス)。 |
貴重なご意見をありがとうございました。