Help us understand the problem. What is going on with this article?

ClaspでGoogle Apps Scriptのローカル開発環境を構築する

Google Apps Script(以下GAS)、便利ですよね。
仕事でG Suite使ってるのであれば、ちょっとした作業の自動化だったり、ツールの開発をサクッとできて便利です。
コードをブラウザで書いてすぐに実行できるのもありがたいです。
その反面、ソースコードの管理が疎かになったりするので、ローカルで開発したいというニーズもあったりするみたいです。

そこで、Googleが提供しているCLIツール、Claspを使って、Web上のソースとローカルのソースの同期を取って、
自分の好きなエディタで書いたり、Gitでソース管理したりできるようにしようと思います。

環境

OS: Windows10 Pro Education
エディタ: VSCode(Version 1.38)

Claspを導入する

Node.jsをインストールし、以下のコマンドを実行する。
https://nodejs.org/ja/

# npmコマンドが実行できるか確認
npm --version

# Claspインストール
npm install -g @google/clasp

# Googleアカウントでログイン
# ブラウザが起動するので画面に従ってログイン、アクセスを許可する。
# クレデンシャルファイルとして、~/.clasprc.jsonが作成される。
clasp login

ローカル開発環境の構築

ついでに、普段Java Scriptを書くことがないので、それっぽい環境を構築します。
VScodeを使う前提で、必要なモジュール、拡張機能を入れていきます。

# Eslint、Prettierをインストール
npm install -g eslint
npm install -g prettier

その後、VScodeの拡張機能、「Eslint」、「Prettier」をインストールします。
これで構文チェックやフォーマットしてくれます。

Claspを使ってみる

まずは適当なGASプロジェクトを作ります。適当なコードを書きます。
コード.gsを、main.gsにリネームしました。
ファイル > プロジェクトのプロパティ
でスクリプトIDを確認してください。このIDを使います。

# GASプロジェクトを取得
clasp clone [YOUR_SCRIPT_ID]

# 実行結果
# Cloned 2 files.
# └─ main.js
# └─ appsscript.json

これでローカルで編集可能です。なぜかgsだった拡張子がjsになります。
一度cloneしてしまえば、Gitと同じようにpull,pushができます。
スクリプトIDは.clasp.jsonに保持されます。

# ローカルの変更をリモートに反映
clasp push

# リモートの変更をローカルに反映
clasp pull

最後に

僕の職場ではGASを「ガス」って読んでいたんですけど、この前「ギャス」って呼ぶ人に出会いました。
皆さんはどっち派ですか?

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away