clasp

CLI、GitHub、公式ページ、あちこちにあるヘルプをまとめたもの

どんなときもなによりも公式マニュアルが最強。

GitHub - google/clasp: 🔗 Command Line Apps Script Projects

オプション

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 ファイルをを作成することで、プッシュ時にアップロードされないファイルを定義することが出来る。自分で、プロジェクトごとに作る。

    1. プロジェクトのルートフォルダに.claspignore という名前のファイルを作る

    2. 無視したいファイル名のパターンを記述する

作成されていない場合は、デフォルトが適用される。デフォルトでは、

    • マニフェストファイル(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などで候補表示ができる