ADVERTISEMENT

【Googleスプレッドシート】Apps ScriptのclaspCLIを使ったローカル開発!Gitと組み合わせる手順

【Googleスプレッドシート】Apps ScriptのclaspCLIを使ったローカル開発!Gitと組み合わせる手順
🛡️ 超解決

GoogleスプレッドシートのApps Scriptをブラウザ上のエディタだけで編集していると、コードのバージョン管理が難しく、複数人での共同開発も面倒に感じることがあります。そんなときに便利なのが、Googleが公式に提供するコマンドラインツール「clasp」です。claspを使えば、Apps Scriptのコードをローカル環境にダウンロードして好きなエディタで編集し、Gitでバージョン管理しながら開発できます。この記事では、claspのインストールからGitとの連携までを具体的な手順で解説します。

【要点】claspとGitでApps Scriptを効率的にローカル開発する方法

  • claspコマンド一式: プロジェクトの作成、プッシュ、プル、デプロイをターミナルから実行でき、ローカル編集と同期できます。
  • Gitリポジトリとの連携: ローカルの.clasp.jsonと.gitignoreを適切に設定し、ソースコードだけをバージョン管理します。
  • .clasp.jsonとスクリプトID: スクリプトIDを`.clasp.json`に記述することで、複数のプロジェクトを簡単に切り替えられます。

ADVERTISEMENT

claspCLIの概要と準備するもの

clasp(Command Line Apps Script Project)は、Googleが提供するNode.jsベースのCLIツールです。これを使うと、従来ブラウザ上でしか編集できなかったApps Scriptを、ローカルのテキストエディタやIDEで編集し、コマンド一つでGoogleのサーバーと同期できます。また、ローカルでGitを使ったバージョン管理が可能になり、チーム開発やコードレビューもスムーズになります。前提として、Node.jsとnpmがインストールされた環境、Git、そしてGoogleアカウントが必要です。Node.jsは公式サイトからインストーラをダウンロードしてセットアップしてください。Windows、macOS、Linuxのいずれでも動作します。

claspを使ったローカル開発の手順

ここでは、スプレッドシートに紐付いた既存のApps Scriptプロジェクトを例に、claspでローカルに取り込み、Git管理するまでの流れを説明します。

1. claspのインストールとログイン

  1. claspをグローバルインストールする
    ターミナルでnpm install -g @google/claspを実行します。インストールが完了したらclasp --versionでバージョンが表示されることを確認してください。
  2. Googleアカウントにログインする
    clasp loginを実行するとブラウザが開き、Googleアカウントの認証画面が表示されます。必要な権限を許可してください。ログインに成功すると、ターミナルに「Authorization successful.」と表示されます。

2. 既存のApps Scriptプロジェクトをローカルに取り込む

  1. スプレッドシートからスクリプトIDを取得する
    Googleスプレッドシートを開き、メニューの「拡張機能」→「Apps Script」をクリックします。エディタ画面のURL末尾にある「/d/」以降の英数字がスクリプトIDです。これをメモしておきます。
  2. ローカルにフォルダを作成し、claspでクローンする
    任意のディレクトリでmkdir my-clasp-project && cd my-clasp-projectとし、clasp clone <スクリプトID>を実行します。すると、そのプロジェクトのファイルがすべてローカルにダウンロードされます。ファイル構成は.clasp.jsonappsscript.json、そして実際のコードファイル(例:Code.gs)です。

3. ローカルでコードを編集し、Google側にアップロードする

  1. お好みのエディタでコードを編集する
    VSCodeやSublime TextなどでCode.gsを開き、関数の追加や修正を行います。編集後は通常通り保存してください。
  2. 変更をGoogleにプッシュする
    ターミナルでclasp pushを実行します。ローカルのファイルがGoogleのスクリプトエディタに反映されます。逆に、Google側で変更があった場合はclasp pullでローカルに同期できます。
  3. バージョンを作成してデプロイする(任意)
    clasp versionでバージョンを作成し、clasp deployでデプロイできます。これにより、本番環境と開発環境を分離できます。

4. Gitでバージョン管理を始める

  1. Gitリポジトリを初期化する
    git initを実行します。このとき、.clasp.jsonにはスクリプトIDや認証情報が含まれるため、.gitignoreファイルを作成し、.clasp.jsonを除外することを強くおすすめします。また、node_modulesなども除外してください。
  2. コードをステージングしてコミットする
    git add .でファイルをステージングし、git commit -m "initial commit"でコミットします。以後、編集のたびにgit addgit commitで履歴を残せます。リモートリポジトリ(GitHubなど)と連携する場合はgit remote add origin <URL>で追加し、git push -u origin mainでプッシュします。

5. 複数人での開発フロー例

チーム開発では、Gitのブランチを活用します。各メンバーがclasp cloneで同じスクリプトIDからローカルに取り込み、機能ごとにブランチを作成して開発します。変更が完了したらclasp pushで自分のブランチの変更をGoogleにアップロードし、テスト用のスプレッドシートで動作確認を行います。確認が取れたらプルリクエストを出し、レビュー後にmainブランチにマージします。このとき、.clasp.jsonがコンフリクトしないように.gitignoreで除外しておくことが重要です。

注意点とよくあるトラブル

clasp loginで認証に失敗する場合

ブラウザでポップアップがブロックされている可能性があります。ブラウザの設定でポップアップを許可するか、ターミナルに表示されるURLを手動でコピーしてブラウザで開いてください。また、Googleアカウントで2段階認証を使っている場合は、アプリパスワードの代わりにOAuth認証が使われるため、特別な設定は不要です。

clasp pushでエラーが発生する場合

ファイルの構文エラーや、クラウド側の制限(ファイルサイズ上限など)が原因です。まずローカルでclasp runを使ってコードをテストするか、clasp push --forceで強制的にプッシュを試みます。ただし、強制プッシュは競合を無視するため注意が必要です。また、appsscript.jsonの設定が間違っていないか確認してください。

.gitignoreの設定漏れによる機密情報の漏洩

.clasp.jsonにはスクリプトIDやアクセストークンが含まれるため、絶対にGitで追跡しないでください。必ず.gitignore.clasp.json.clasprc.json(グローバル設定)を追加します。また、node_modulesも不要なので除外しましょう。テンプレートとして以下の内容を.gitignoreに記述することをおすすめします。
.clasp.json
.clasprc.json
node_modules/

clasp pullしたときにローカルの変更が上書きされる

clasp pullは、Google側の最新状態でローカルファイルを上書きします。ローカルに未コミットの変更がある場合は、先にgit stashで退避させるか、コミットしてからプルしてください。コミット後にclasp pullを実行し、その後git diffで差分を確認してからマージすると安全です。

ADVERTISEMENT

claspを使う場合と使わない場合の比較

項目 claspを使う場合 ブラウザのスクリプトエディタ
エディタの選択 好きなエディタ(VSCode、Sublime等)を使用可能 ブラウザ上の簡易エディタのみ
バージョン管理 Gitで履歴管理、ブランチ、レビューが可能 標準ではバージョン管理機能が弱い(手動でコピー保存など)
共同開発 Gitを使ったチームワークが容易 同時編集が難しく、競合が発生しやすい
テスト・デバッグ ローカルでテストコードを実行可能(clasp run) ブラウザ上での実行ログのみ
利用環境 Node.jsとnpmが必要、初期設定に時間がかかる ブラウザのみで即座に編集可能
オフライン作業 ローカルで編集可能(ただし同期にはオンラインが必要) 基本的にオンライン必須

まとめ

claspCLIを使うことで、Google Apps Scriptの開発をローカル環境に移行し、Gitによる本格的なバージョン管理が可能になります。この記事で紹介した手順に従えば、既存のプロジェクトを簡単に取り込み、好きなエディタで編集しながらチーム開発もスムーズに進められるようになります。さらに、GitHub Actionsなどと組み合わせてCI/CDパイプラインを構築すれば、プッシュ時に自動テストやデプロイを行うことも可能です。まずは小さなスクリプトからclaspを導入して、ローカル開発のメリットを実感してみてください。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。