clasp
CLI、GitHub、公式ページ、あちこちにあるヘルプをまとめたもの
どんなときもなによりも公式マニュアルが最強。
オプション
claspのバージョン表示
-v, --version
表示例)2.3.0
claspのヘルプ表示
-h, --help
コマンド
script.google.comにログインする。
login [options]
Options:
--no-localhost ローカルサーバーを実行せず、代わりに手動でコードを入力する
--creds <file> 認証情報への相対パス(GCPから)
--status ログインしている人を表示
-h, --help 使い方表示
ログアウトする
logout [options]
Options:
-h, --help 使い方表示
スクリプトを作成する
create [options]
Options:
--type <type>
新規のドキュメント、スプレッドシート、プレゼンテーション、フォームに関連付けられたスクリプト(=コンテナバインドスクリプト)、もしくはスタンドアロンスクリプト、Webアプリ、APIとして新しいApps Scriptプロジェクトを作成します。この値が省略された場合、ユーザーに選択肢で問います。--parentIDが設定されているとこの値は無視される。
--title <title>
プロジェクト名。指定しないとrootDirの名前と同じ。
--parentId <id>
プロジェクトがバインドされている親のID。スプレッドシートやドキュメントなどのIDのこと。指定されない場合はスタンドアロンプロジェクト。
初見ではGoogleドライブ上のフォルダIDかな?とも思ったけど。これはAppsScriptプロジェクトを作成するのが目的であって、ドライブ内には無いから。AppsScriptのページに存在するから。間違えない。
--rootDir <rootDir>
claspがプロジェクトファイルを保存するローカルディレクトリ。指定しない場合、claspはデフォルトで現在のディレクトリになります。
-h, --help
使い方表示
Note:
プロジェクト作成フォルダに.clasp.jsonファイルが存在していると、
Project file (.clasp.json) already exists.
と表示されて、新規作成は出来ない。1つのプロジェクトに対して1つのフォルダを作成すること。この.clasp.jsonファイルにはスクリプトファイルのIDが書き込まれているので、それを新規作成したスクリプトのIDで上書きすることは出来ない、ということ。先にあったほうのIDがなくなったら、そっちのアクセス手段がなくなっちゃうから。
プロジェクトをクローンする
clone [options] scriptId | scriptURL
scriptId | scriptURL
クローンするスクリプトのIDまたはURL
Options:
--versionNumber <number>
クローンするスクリプトのバージョン
--rootDir <rootDir>
claspがプロジェクトファイルを保存するローカルディレクトリ。 指定しない場合は現在のディレクトリ。
-h, --help
使い方表示
リモートプロジェクトをダウンロード
pull [options]
Options:
--versionNumber <version>
取得するプロジェクトのバージョン番号
-h, --help
使い方表示
リモートプロジェクトをアップデート
push [options]
Options:
-f, --force
リモートマニフェストを強制的に上書き
-w, --watch
ローカルファイルの変更を監視します。.claspignoreファイルによって無視されないファイルが変更されたときにプッシュします。 GitHubには、数秒ごとにファイルをプッシュします。と書いてある。どっち?
-h, --help
使い方表示
Note:
以下はpush時に無視される。pushされない。
.(ピリオド)で始まるファイル
許可されたファイル拡張子がない
claspがプッシュするファイルを表示
status [options]
Options:
--json
JSON形式でステータスを表示
-h, --help
使い方表示
Note:
以下はpush時に無視される。pushされない。
.(ピリオド)で始まるファイル
許可されたファイル拡張子がない
表示例1:
clasp status
Not ignored files:
└─ Code.js
└─ appsscript.json
└─ utils/strings.js
Ignored files:
└─ .clasp.json
表示例2:
clasp status --json
{"filesToPush":["Code.js","appsscript.json","utils/strings.js"],"untrackedFiles":[".clasp.json"]}
スクリプトをウェブで開く
open [options] [scriptId]
[scriptId]
オプション。開くスクリプトのID
Options:
--webapp
ブラウザでWebアプリケーションを開く
--creds
認証画面を開きます
--addon
親IDをリストし、最初のIDのURLを開きます。
--deploymentId <id>
--webappでカスタムデプロイメントIDを使用
-h, --help
使い方表示
スクリプトのデプロイメントIDの一覧
deployments
Options:
-h, --help
使い方表示
プロジェクトをデプロイする
deploy [options]
バージョンを作成し、スクリプトをデプロイします。レスポンスは、デプロイメントIDとデプロイメントのバージョンが表示されます。Webアプリの場合、各デプロイメントには一意のURLがあります。既存のデプロイメントを更新/再デプロイするには、デプロイメントIDを指定します。
Options:
-V, --versionNumber <version>
デプロイするプロジェクトのバージョン。省略すると新規バージョンとしてデプロイ。存在しない数値はRequested entity was not found.となり指定できない。
-d, --description <description>
作成するデプロイメントの説明文
-i, --deploymentId <id>
再デプロイする時は、そのデプロイメントID
-h, --help
使い方表示
プロジェクトのデプロイメントをアンデプロイする
undeploy [options] [deploymentId]
[deploymentId]
オプション。アンデプロイしたいデプロイメントID。指定しない場合は、最新のデプロイメントが対象。
Options:
-a, --all
すべてのデプロイメントをアンデプロイします
-h, --help
使い方表示
スクリプトのバージョンを作成
version [options][description]
Description
作成するバージョンについての説明文
Options:
-h, --help
使い方表示
Note:
ファイルメニューの「版を管理」のSave new versionに相当
スクリプトのバージョン一覧
versions
Options:
-h, --help
使い方表示
表示例:
~ 4 Versions ~
4 - this is deply cmd
3 - (no description)
2 - (no description)
1 - my First version
App Scripts プロジェクト一覧
list
Options:
-h, --help
使い方表示
表示例:
Clasp Codelab – https://script.google.com/d/(ID)/edit
[プロジェクト名] -[URL]の表示形式で一覧になる。スタンドアロンプロジェクトのみ?
高度なコマンド
これらのコマンドは、プロジェクトID /認証情報の設定が必要ですStackDriverのログを表示
logs [options]
最新のStackDriverログを出力します。Logger.logではなく、console.logからのログです。
Options:
--json
JSON形式で表示
--open
ブラウザでStackDriverログを開く
--setup
StackDriverログを設定する
--watch
監視して、5秒ごとに最新のログを取得する
--simplified
ログのタイムスタンプを非表示にする
-h, --help
使い方表示
Apps Scriptsプロジェクト内の関数を実行する
run [options] [functionName]
使用するには手順が必要。詳しくは別記。
functionName
実行する関数名
Options:
--nondev
trueの場合、非ディべロッパーモードで関数を実行します。
-p, --params [StringArray]
関数に渡すパラメーターのJSON文字列配列
-h, --help
使い方表示
有効なAPIと無効なAPI一覧
apis [options]
List APIs
Advanced Servicesとして有効にできるGoogle APIをリストします。
clasp apis
clasp apis list
Enable/Disable APIs
Google CloudプロジェクトでAPIを有効または無効にします。これらのAPIは、GmailAppなどのサービスやBigQueryなどの高度なサービスを介して使用されます。
API名はclasp apis listを使用して見つけることができます。
clasp apis enable drive
clasp apis disable drive
Options:
--open
APIアクセスを表示、管理できるGoogle Cloud Consoleを開きます。
-h, --help
使い方表示
ヘルプ表示
help
設定ファイル(.clasp.json)を更新
setting|settings [options] [settingKey] [newValue]
settingKeyを省略すると、現在の設定が出力されます。newValueを省略すると、現在の設定値が返されます。(認証無くてもいけてる?)
settingKey
変更したい .clasp.json 内のキー
newValue
新しい設定値
Options
-h, --help
使い方表示
他のコマンドはサポートされていません
*
他
Ignore File (.claspignore)
.claspignore ファイルをを作成することで、プッシュ時にアップロードされないファイルを定義することが出来る。自分で、プロジェクトごとに作る。
プロジェクトのルートフォルダに.claspignore という名前のファイルを作る
無視したいファイル名のパターンを記述する
作成されていない場合は、デフォルトが適用される。デフォルトでは、
マニフェストファイル(appscript.json)
ルードフォルダーに含まれる全てのJavaScript(*.js)、TypeScript(*.ts)、HTML(.html)
.git および、node_modules 以外のサブフォルダ
が対象。
デフォルトの上記条件をignoreファイルにすると以下のよう。
# ignore all files…
**/**
# except the extensions…
!appsscript.json
!**/*.gs
!**/*.js
!**/*.ts
!**/*.html
# ignore even valid files if in…
.git/**
node_modules/**
(GitHub - google/clasp: 🔗 Command Line Apps Script Projectsより)
プロジェクト設定ファイル(.clasp.json)
cloneまたはcreateを実行すると、.clasp.jsonが現在のディレクトリに自動で作成される。プロジェクト毎に存在し、clasp使用時に適用される設定が記述されている。
.clasp.jsonの例:
{
"scriptId": "",
"rootDir": "build/",
"projectId": "project-id-xxxxxxxxxxxxxxxxxxx",
"fileExtension": "ts",
"filePushOrder": ["file1.ts", "file2.ts"]
}
(GitHub - google/clasp: 🔗 Command Line Apps Script Projectsより)
設定できるのは次のもの。
scriptId (必須)
claspがターゲットとするGoogle ScriptプロジェクトのID。プロジェクトのIDを確認するには、ウェブ上でスクリプトを開いて、ファイル > プロジェクトのプロパティ > スクリプトのID に書かれている。機密情報なので知らない人にバラしちゃダメ。claspからcreateしたら自動的に記入されるし、cloneするときはオプションとして指定するし、.clasp.jsonのこの項目を直にいじることは...多分無い?
rootDir (オプション)
claspがプロジェクトファイルを保存するローカルディレクトリを指定する。指定しない場合、デフォルトで現在のディレクトリになる。もしプロジェクトフォルダ直下にアップロードしたくないファイルがあるとかそういう場合、このrootDirを使って、アップロードしたいファイルを入れてるサブフォルダを指定してやる。さすればそのサブフォルダ以下のファイルだけがpush/pull時にアップロード/ダウンロードされる。
projectId (オプション)
claspがターゲットとするGoogle Cloud PlatformプロジェクトのIDを指定する。事前にGoogle ScriptプロジェクトをGoogle Cloud Platformに関連付ける必要がある。Cloud Platformはまだ使ったこと無いからわからん。clasp runとか高度なコマンドを使用するには指定しないといけない。ただこれも、このファイルを直に直す必要はなく、clasp run など使用した時に聞いてくれるので、その時に入力してやればここに保存される。
fileExtension (オプション)
Apps Scriptプロジェクトのローカルスクリプトファイルのファイル拡張子を指定する。 基本的にはjavascriptなので"js" 。デフォルトなので書かなくても"js"になる。もしTypeScriptを使いたければ "ts" としてやる。
filePushOrder (オプション)
最初にプッシュするファイルを指定する。実行順序に依存するスクリプトに役立ちます。他のすべてのファイルは、このファイルリストの後にプッシュされます。
appsscript.jsonと.clasp.jsonファイルの自動補完を有効にする
appsScriptのマニフェストファイルであるappsscript.jsonや、プロジェクトにおけるclaspの設定.clasp.jsonは、編集時に自動補完するようにできる。
設定のキー名を間違えなくなる他、簡易な説明も出るので便利。
VCCodeで設定を開く
ショートカットキーはCtrl + , 、メニューからだと[ファイル] > [ユーザー設定] > [設定]
開いたら検索欄に「json schemas」と入力。「JSON:Schemas」という項目を探して、編集画面に入る。
設定を編集する
設定ファイル「setting.json」が開くはず。
入力候補が出るかもしれないが、今回はEscキーで閉じてしまって良い。
json.schemasの項目に以下を"json.schemas": [~]の~部分にコピペする。
{
"fileMatch": [
"appsscript.json"
],
"url": "http://json.schemastore.org/appsscript"
},
{
"fileMatch": [
".clasp.json"
],
"url": "http://json.schemastore.org/clasp"
}
"json.schemas":の項目名(キー名)は自動で入力されると思うが、もしなかったら右画像に合わせて記述すれば良い。
この状態で「setting.json」を保存すると自動補完が有効になる。
補完が効くようになる
これで、appsscript.jsonや.clasp.jsonを編集中に自動補完が効くようになり、Ctrl + Spaceで候補を表示したり、マウスカーソルを重ねた時に説明文が出るようになり、便利。
Ctrl+Spaceなどで候補表示ができる