1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【GAS】clasp + TypeScript で最強のローカル開発環境を構築する手順

1
Posted at

はじめに

エンジニア歴1年はんじーパンジーです!:monkey:

Google Apps Script (GAS) をブラウザのエディタで開発していると、以下のような悩みが出てきませんか?

  • 複数人で同時編集して、片方の変更が反映されない
  • 都度変更履歴が残らないため、ソースコードを元に戻すことができない
  • エディタの補完機能が弱く、タイプミスに気づかない
  • 使い慣れた VS Code で開発したい

これらを解決するために、Google 公式の CLI ツール clasp を導入し、TypeScript で開発できる環境を構築する手順をまとめました。

前提条件

  • Node.js がインストールされていること
    • node -v でバージョンが表示されれば OK

1. clasp のインストール

まずは clasp 本体をグローバルにインストールします。

npm install -g @google/clasp

2. 【重要】Google Apps Script API の有効化

これを行わないと、ログインや Push 時にエラーになります。忘れがちな手順なので最初に設定しましょう。

  1. https://script.google.com/home/usersettings にアクセス
  2. 「Google Apps Script API」を「オン」に設定

3. Google アカウントへログイン

ターミナルで以下のコマンドを実行し、Google アカウントと紐付けます。

clasp login

ブラウザが立ち上がるので、GAS を使用したい Google アカウントを選択し、許可を与えます。ターミナルに Saved the credentials... と表示されれば完了です。

4. プロジェクトの作成と TypeScript の導入

ここからはプロジェクトごとの作業になります。

4-1. プロジェクトフォルダの作成

作業用ディレクトリを作成し、package.json を生成します。

新規プロジェクトフォルダ作成

mkdir my-gas-project
cd my-gas-project

package.json 生成

npm init -y

4-2. 必要なパッケージのインストール

TypeScript 本体と、GAS の型定義ファイル(補完を効かせるため)をインストールします。

npm install -D typescript @types/google-apps-script

4-3. tsconfig.json の作成

プロジェクト直下に tsconfig.json を作成し、GAS 環境に適した設定を記述します。

{
  "compilerOptions": {
    "target": "ES2019",
    "lib": ["esnext"],
    "types": ["google-apps-script"],
    "moduleResolution": "node",
    "strict": true,
    "noImplicitAny": true
  }
}

5. GAS プロジェクトとの連携

A. 新規プロジェクトを作成する場合

clasp create

実行後、スクリプトの種類を聞かれるので standalone(スプレッドシート等に紐付かない独立したスクリプト)などを選択します。

B. 既存のプロジェクトを使用する場合

既にブラウザで作った GAS をローカルで編集したい場合は、スクリプト ID を使用します。

注: スクリプト ID は GAS エディタの「プロジェクト設定」または URL projects/ 以下の文字列です。

clasp clone <スクリプトID>

⚠️ 注意点
clone 直後のファイルは .js 拡張子です。TypeScript で開発する場合は、手動で .ts にリネームしてください。

おわりに

今回の手順はローカル環境で、GASのコードをTypescriptで編集できるというものです。
これだけだと、GASはブラウザ上でコード編集できるため、メリットは薄い。
本当のメリットは、Gitでソースコードを管理できる点!!
次回、GASのソースコードのGit管理について記事にする予定です!
・複数のスプレッドシートのGASの管理
・ドキュメント管理
・運用する上でのルール

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?