追記
この情報は古いです、本家の最新のREADMEを参考にしてください(気が向いたら更新します もしくは編集リクエストお願いします)
原文
https://github.com/google/clasp/blob/a556599e78bdc3f168e3bb5cdc2ff0a55909f6f5/README.md
Clasp
Apps Script をローカルで開発するためのClasp ( Command Line Apps Script Projects)
codelab で始めよう!
概要
🗺️ ローカル開発: clasp
で、GASのプロジェクトをローカルで開発できるようになります。つまり、ソースをコード管理したり、他の開発者と共同開発したり、あなたのお気に入りのツールを使うことができます。
🔢 バージョン管理: プロジェクトの作成・更新・表示・複数のデプロイが可能になります。
📁 コードの構造化: script.google.com上でのフラットなプロジェクトをローカルでフォルダーで管理できます。
例:
-
script.google.com での表示:
tests/slides.gs
tests/sheets.gs
-
ローカル:
-
tests/
slides.js
sheets.js
-
🔷 TypeScriptでGASを書く:
- アロー関数
- オプションの構造型
- クラス
- 型推論
- インターフェース
- And more...(英語)
インストール
clasp
のインストール
sudo npm i @google/clasp -g
次に、 Apps Script API を有効化する: https://script.google.com/home/usersettings
(有効化できなければならこれを実行してください)
sudo npm i -g grpc @google/clasp --unsafe-perm
コマンド
GASのプロジェクト管理を提供する基本的なコマンド
注意: ほとんどのコマンドは、
clasp login
とclasp create/clone
のあとに実行する必要があります。
clasp login [--no-localhost] [--creds <file>]
clasp logout
clasp create [--title <title>] [--type <type>] [--rootDir <dir>] [--parentid <id>]
clasp clone <scriptId | scriptURL>
clasp pull [--versionNumber]
clasp push [--watch] [--force]
clasp status
clasp open [scriptId] [--webapp]
clasp deployments
clasp deploy [--versionNumber <version>] [--description <description>] [--deploymentId <id>]
clasp undeploy [deploymentId]
clasp version [description]
clasp versions
clasp list
高度なコマンド
注意: これらのコマンドはぷろじぇくとIDか認証情報を必要とします。(下記参照)
clasp logs [--json] [--open] [--watch]
clasp run [functionName] [--nondev]
clasp apis list
clasp apis enable <api>
clasp apis disable <api>
clasp setting <key> [value]
リファレンス
login
ログインします。認証情報は .clasprc.json
に保存されます。
$ clasp login
オプション
-
--no-localhost
: ローカルサーバーで実行しない。代わりに手動でコードを入力する。 -
--creds <file>
: カスタム認証情報を使用します。.clasprc.json
をカレントディレクトリに保存します。このファイルは非公開にしてください。
logout
ログアウトします
clasp logout`
Create
新しいプロジェクトを作成します。プロジェクト名が指定されていない場合は入力を求めます。
オプション
-
--type [docs/sheets/slides/forms]
: 指定した場合、Document、Spreadsheet、Presentation、Formにアタッチされたプロジェクトを作成します。--parentId
を指定したときは無視されます。 -
--title
: プロジェクトのタイトル -
--rootDir
: プロジェクトのファイルを保存する場所の指定。指定しない場合カレントディレクトリになります。 -
--parentId
: 親プロジェクトのID。 GoogleDoc、Googleシート、Googleフォーム、GoogleスライドのIDを指定してください。指定がない場合スタンドアロンプロジェクトになります。
例
clasp create
-
clasp create --type standalone
(デフォルト) clasp create --type docs
clasp create --type sheets
clasp create --type slides
clasp create --type forms
clasp create --type webapp
clasp create --type api
clasp create --title "My Script"
clasp create --rootDir ./dist
clasp create --parentId "1D_Gxyv*****************************NXO7o"
これらのオプションは下記のように組み合わせることができます。
clasp create --title "My Script" --parentId "1D_Gxyv*****************************NXO7o" --rootDir ./dist
Clone
script.google.com からクローンする
Options
-
scriptId | scriptURL
: スクリプトのIDかURLを指定する。 -
versionNumber
: 指定したバージョンを取得する。
例
clasp clone 15ImUCpyi1Jsd8yF8Z6wey_7cw793CymWTLxOqwMka3P1CzE5hQun6qiC
clasp clone https://script.google.com/d/15ImUCpyi1Jsd8yF8Z6wey_7cw793CymWTLxOqwMka3P1CzE5hQun6qiC/edit
Pull
リモートからプロジェクト情報を取得し、ローカルファイルを更新します。
オプション
-
--versionNumber
: 取得するバージョンの番号
例
clasp pull
clasp pull --versionNumber 23
Push
script.google.com にpushする。
これらのファイルは無視される。:
-
.
で始まるファイル - 非対応の拡張子
-
.claspignore
の内容に一致するファイル
Options
-
--watch
: ローカルの更新を監視し、何秒化ごとにプッシュします。 -
-f
--force
: 強制的に上書きします。 -
-w
--watch
: ローカルのファイルを監視し、更新がアレば自動でプッシュします。
例
clasp push
clasp push -f
clasp push --watch
Status
更新されたファイルの一覧表示
これらのファイルは無視される。:
-
.
で始まるファイル - 非対応の拡張子
-
.claspignore
の内容に一致するファイル
例
clasp status
Open
現在のプロジェクトをブラウザで開く。
オプション
-
scriptId
: プロジェクトのID -
--webapp
: ブラウザでWebアプリケーションを開く
例
clasp open
clasp open [scriptId]
clasp open --webapp
デプロイメント
デプロイされるスクリプトのリストを表示する。
Examples
clasp deployments
Deploy
バージョンを指定してスクリプトをデプロイします。デプロイしたバージョンが表示されます。
Options
-
-V <version>
--versionNumber <version>
: デプロイするバージョン -
-d <description>
--description <description>
: デプロイの説明 -
-i <id>
--deploymentId <id>
: 再デプロイする際のID
例
-
clasp deploy
(create new deployment and new version) -
clasp deploy --versionNumber 4
(create new deployment) -
clasp deploy --desc "Updates sidebar logo."
(deploy with description) -
clasp deploy --deploymentId 123
(create new version) clasp deploy -V 7 -d "Updates sidebar logo." -i 456
Undeploy
スクリプトをアンデプロイする。
Options
-
deploymentId
: デプロイのID
例
-
clasp undeploy
(undeploy the last deployment.) clasp undeploy "123"
Version
不変なバージョンを作る。
Options
-
description
: スクリプトのバージョンの説明
例
clasp version
clasp version "Bump the version."
Versions
バージョンの一覧表示
例
clasp versions
List
最新のGASプロジェクトの一覧を表示します。(?)
例
clasp list # helloworld1 – xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ...
高度なコマンド
注意: プロジェクトIDの設定が必要です。
Logs
最近の StackDriver logs を表示します。(Logger.logではなくconsole.logです)
Options
-
--json
: JSONで出力します。 -
--open
: StackDriverのログをブラウザで開きます。 -
--watch
: 5秒毎に最新のログを取得する。
例
clasp logs
ERROR Sat Apr 07 2019 10:58:31 GMT-0700 (PDT) myFunction my log error
INFO Sat Apr 07 2019 10:58:31 GMT-0700 (PDT) myFunction info message
clasp logs --json
clasp logs --open
clasp logs --watch
Run
リモートで実行する
実行に必要なこと:
- 認証情報を使ってログインします (
clasp login --creds creds.json
) - スクリプトを、実行可能なAPIとしてデプロイします(GUIから簡単にできます).
- スクリプトのすべてのAPIを有効にします。
Options
-
functionName
: 実行したい関数名。 -
nondev
: trueの場合、non-devModeで実行します。
例
clasp run 'sendEmail'
List/Enable/Disable Google APIs
利用可能/不可能なAPIを一覧表示します。
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
Help
ヘルプを表示します。
例
clasp help
Setting
設定ファイル .clasp.json
を更新します。
newValue
を省略した場合は現在の設定値を返します。
Options
-
settingKey
: 変更したい設定です。 -
newValue
: 設定に対する新しい値です。
例
clasp setting scriptId
clasp setting scriptId new-id
ガイド
Ignore File (.claspignore
)
.gitignore
のように、.claspignore
でアップロードしたくないファイルを無視することができます。
- プロジェクトのルートディレクトリに
.claspignore
という名前のファイルを作ります。 - 除外するパターンを追加します。
注意 : .claspignore
ファイルはAnymatchでパースします。 .gitignore
とは特にディレクトリについて大きく異なります。
ディレクトリを無視するにはこのように書いてください。
**/node_modules/**
.
マニフェストファイルと build/main.js
を除く全てを無視する例はこのようになります。
**/**
!build/main.js
!appsscript.json
Project Settings File (.clasp.json
)
clone
または create
を実行すると、 clasp
の設定を記述するための .clasp.json
がカレントディレクトリに作成されます。
例:
{
"scriptId": "",
"rootDir": "build/",
"projectId": "project-id-xxxxxxxxxxxxxxxxxxx",
"fileExtension": "ts",
"filePushOrder": ["file1.ts", "file2.ts"]
}
以下の設定値を利用できます。
scriptId
(必須)
ターゲットとするGASプロジェクトのIDを指定します。プロジェクトのURLの、 /d/
と /edit
の間の値です。
https://script.google.com/d/<SCRIPT_ID>/edit
.
rootDir
(任意)
claspがプロジェクトファイルを保存する ローカル ディレクトリを指定します。指定がない場合、カレントディレクトリになります。
projectId
(任意)
ターゲットとするGoogle Cloud PlatformプロジェクトのIDです。GASプロジェクトはGoogle Cloud Platformに関連付けれらています。
-
clasp open
を実行する。 - ブラウザで、
リソース > Cloud Platform プロジェクト
をクリックする - プロジェクトIDを指定する。
project-id-xxxxxxxxxxxxxxxxxxx
手動で設定しなくても、clasp は必要なときにIDを尋ねます。
fileExtension
(任意)
GASプロジェクトの ローカル のスクリプトファイルの拡張子を指定します。
filePushOrder
(任意)
最初にプッシュするファイルを指定します。
実行順に依存するスクリプトに役立ちます。他のすべてのファイルはこのファイルのあとにプッシュされます。
トラブルシューティング
このライブラリを使用するには、 node のバージョン6.0.0以上が必要です。下記のようにして確認し、必要であればnodeをアップグレードしてください。(n はnodeのバージョン管理ツールです。)
node -v # Check Node version
sudo npm install n -g
sudo n latest
README Badge
あなたのプロジェクトに clasp を使用しますか?使うのであれば README Badge を追加してください。
[![clasp](https://img.shields.io/badge/built%20with-clasp-4285f4.svg)](https://github.com/google/clasp)
clasp の開発
ビルド方法は 開発ガイドを参照してください。それほど難しくはありません。
Contributing
このツールはGASプロジェクトのローカルでの開発を可能にすることを目的としています。
コア機能やユースケースを見たい場合はGitHubのissueを探すか、ユースケースの詳細な提案を作成してください。
プルリクエストは大歓迎しています。issuesを確認してください。特に、good first issue (はじめての人に適したissue)や help wanted のタグが付いたものをお願いします。
プルリクエストを送信する方法
-
tests/test.ts
でテストケースを調べ、プルリクエストが影響を与える可能性があるケースを試してください。 -
tslintを実行してください。:
npm run lint
. - 機能することを確認したあとにプルリクエストを送信してください。
⚡ Powered by the Apps Script API.