Google Apps Script 「clasp」を用いてローカル環境からTypeScriptで開発
GAS(Google Apps Script)は、通常 Apps Scriptのエディターを用いて開発する
これでも開発は可能だが、やはり「いつもの使い慣れた環境で開発したい!」という人は
clasp
を使うと幸せになれる
実行環境
npmが必要、なければnvm
やnodebrew
等でインストールしておく
claspの設定
事前に、Apps Scriptの設定にてGoogle Apps Script APIをオンにする
clasp
をローカル環境にインストール
clasp
のバージョン確認
TypeScripの型定義ファイルのインストール
tsconfig.json
を作成
claspにログインする
clasp login
を実行すると、ブラウザが開く
$ clasp login
Logging in globally…
🔑 Authorize clasp by visiting this url:
https://accounts.google.com/o/oauth2/v2/auth?access_type=offline&scope=https...
clasp
でのログインを許可すると、以下のメッセージがブラウザで表示される
TypeScriptでプロジェクトを作成する
clasp create
コマンドを実行する
.clasp.json
、appsscript.json
等の設定ファイルが作成される
.clasp.json
のscriptId
がGASのプロジェクトID
appsscript.json
の初期タイムゾーンはAmerica/New_York
となっている
{
"timeZone": "America/New_York",
"dependencies": {
},
"exceptionLogging": "STACKDRIVER",
"runtimeVersion": "V8"
}
.ts
ファイルを作成する
const greeter = (person: string) => {
return `Hello, ${person}!`;
}
function testGreeter() {
const user = 'Grant';
Logger.log(greeter(user));
}
プロジェクトをApps Scriptに反映させる
clasp push
で先ほど作成した.ts
がGASに反映される
--watch
オプションを付与すると、ファイルの変更を監視してコンパイル・アップロードされる
clasp open
でブラウザでGASの画面を表示できる
.ts
は.gs
に変換され、プロジェクトに反映される
// Compiled using insight-gas-ts 1.0.0 (TypeScript 4.9.5)
"use strict";
var greeter = function (person) {
return "Hello, ".concat(person, "!");
};
function testGreeter() {
var user = 'Grant';
Logger.log(greeter(user));
}
既存のプロジェクトをpullする
clasp clone
で作成済みのプロおジェクトを使用できる