GoogleAppsScriptをローカルで編集できるclaspを試してみるよ!!
GoogleAppsScriptをローカルで編集できるclaspを試してみるよ!!
https://github.com/google/clasp
Develop Apps Script projects locally using clasp (Command Line Apps Script Projects).
とあるように、claspを利用することで(Google)AppsScriptプロジェクトをローカルで開発出来るようになります。 そんなCLIツール。
ここのReadmeを適当に進めてみる。
インストール
前提としてnpmが必要っぽい。
ターミナルから sudo npm i @google/clasp -g
を実行します。
それから、AppsScriptAPIをhttps://script.google.com/home/usersettingsで有効化します。
機能
- ローカル開発:
clasp
はApps Script Projectのローカル開発を可能にします。それによりソースコード管理、他の開発者とのコラボレーション、好きなツールでの開発が出来ます。要するにVimでコーディングできてGithubが使えますよ、といったところか。 - 開発バージョン管理:複数の開発段階の作成、更新、閲覧が出来ます。_
要するにGithu(ry- と思ったのですが、GoogleAppsScriptはデプロイっぽいことするたびにバージョンと説明を入力するので、そのことかな。
- コードの構造化:scriptをホストしているGoogleのフラットなプロジェクトから自動的に(ローカルの)フォルダに変換します。
コマンド
clasp
推測だけど、Command Line Apps Script Projectかな
最初
clasp login
ブラウザでGoogleのログイン画面が表示され、認証と認可が求められる。
Gmailがサードパーティにメール読まれるみたいな話もあるのでちょっと怖いですが、あとには引けない。
これを行うとホームディレクトリに.clasprc.json
が生成されるようです。これがcredentialになる。。。はず。
オプション | 効果 |
---|---|
--no-localhost |
ローカルサーバーを使わず、手動でコードを入力(というか登録??)する |
--ownkey |
上記.clasprc.json の保存先をカレントディレクトリにする。 複数のアカウントで開発している場合はこっちかな。 |
clasp logout
credentialsを削除することでログアウトする
clasp create
新しいプロジェクトを作成する。
どちらもオプションで、第一引数はプロジェクトのタイトル。第二引数は親プロジェクトID。
親プロジェクトIDとは何かというと、要するにGoogle SheetやGoogle DocのID。
指定しないとstandaloneプロジェクトになるよ、と。
例:clasp create "My Scripts" "ID_Gxyv****"
clasp create "My Sample1"
を実行したら
appsscript.json
が出来た。何コレ。
{ "timeZone": "America/New_York", "dependencies": { }, "exceptionLogging": "STACKDRIVER" }
なんか設定ファイルでした。
timezoneは果たしてこれでいいのか。
clasp push
appscript.jsonがあるところで
vim sample.js
function myFunction() { Logger.log('Hello, World'); }
clasp push
GoogleAppScriptを見に行くと上がってる!!
clasp deploy
clasp deploy
でデプロイ出来る
versionとメッセージを引数に取れるけど、
なくてもversionは勝手にインクリメントしてくれるみたい。