FM牛鍵屋本舗

プログラマ(弱)の日々精進系ブログ

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は勝手にインクリメントしてくれるみたい。