状況により選択してください。
【A】既存プロジェクトをローカルで編集する場合
ローカルにプロジェクトを作成
GASのプロジェクトをローカルにクローン
ターミナルで「ローカル側のルートフォルダ」としたい場所に移動
cd <フォルダのパス>
GASのプロジェクトをローカルにクローン
clasp clone
で、プロジェクトのデータをローカルにダウンロードします。clasp clone <スクリプトID>
もしくは
clasp clone <スクリプトファイルのURL>
※URLは
https://
~/edit
の部分まででOK。
スクリプトID
の確認方法
プロジェクトのURLで確認する場合
URLの
スクリプトID
部分を見ます。スクリプトの情報から確認する場合
- プロジェクトにアクセス
- 画面左上のファイル→プロジェクトのプロパティの順に選択
- 情報タブの
スクリプトID
欄を確認
クローンが完了すると…
ローカル側でルートフォルダ以下にファイルが追加されます。
スクリプトファイル自身は、拡張子が.js
になります。
フォルダを整理する
[目標]フォルダ構成
Claspコマンドで必要なファイルだけを操作できるように、ファイルを整理します。
今回は格納先のフォルダ名をsrc
としますが、任意の名前で大丈夫です。
スクリプトをフォルダ分けしている場合もsrc
フォルダ以下にまとめます。
ファイルの移動
現在ルート
フォルダに居るとして…
スクリプト格納用のフォルダを作成
mkdir
コマンドで、フォルダを新規作成します。
引数には、絶対パス/相対パスどちらでも指定できます。mkdir <新規フォルダ名>
今回は
ルート
フォルダ直下にsrc
フォルダ作成します。mkdir src
ファイルを移動する
mv <現在のパス> <移動先(のフォルダ)のパス>
スクリプトA.js
をsrc
フォルダに移動する場合は、こんな感じ。mv ./スクリプトA.js ./src
スクリプトの格納先(=作業フォルダ)を登録
.clasp.json
を編集して、Claspからも認識できるようにしておきます。
{ "scriptId": "<スクリプトID>", "rootDir" : "<スクリプトのあるフォルダ>" }
ちょっとややこしいですが、ここのrootDir
はスクリプトのルートフォルダを指します。
初期値は、前述の画像で言うとルート
フォルダです。
今回はルート
フォルダ直下のsrc
フォルダにスクリプトファイルを置くので、このように変更しておきます。
"rootDir" : "./src"
完了。
これで、【A】既存プロジェクトをローカルで編集する場合の準備は完了です。
続きはこちらへ。
【B】ローカルでイチから開発を始める場合
ローカルにプロジェクトを作成
[目標]作成イメージ
【A】と同様に、src
フォルダにスクリプトを格納できるように準備します。
GASのプロジェクトを新規作成する
ターミナルで「ローカル側のルートフォルダ」としたい場所に移動
cd <フォルダのパス>
Claspコマンドでプロジェクトを作成する
clasp create
でプロジェクトを新規作成します。オプションは色々使えますが、今回は
作業フォルダ
のみ指定しておきます。clasp create --rootDir <作業フォルダのパス>
今回は、こちらと同様に
src
フォルダを引数とします。clasp create --rootDir ./src
オプションは他にも…
プロジェクトを命名
プロジェクトの名前も、作成と同時に付けることができます。
clasp create --title <プロジェクト名>
使用例。
clasp create --title newProject
コンテナとするファイルを登録
コンテナバインドスクリプトを作る場合は、紐付けるファイルのIDも登録しておくことも可能です。
clasp create --parentId <紐付けるファイルのID>
その他のオプション
他にもいろいろオプションがあるようです。
全編英語ですが、詳しくはこちら↓を。
GitHub - google/clasp: 🔗 Command Line Apps Script Projects
これらをまとめて、下記のようにも書くことが出来ます。
clasp create --rootDir <作業フォルダのパス> --title <プロジェクト名> --parentId <紐付けるファイルのID>
ただ、全部まとめて書くとコマンドとしては長いと思います。
(間違えずに書くのは結構しんどい…)
これらは後ほど.clasp.json
等でも編集できるので、シチュエーションによって選択、ということで。
スクリプトの種類を選択
clasp create
を実行すると、スクリプトの種類を選択するよう促されます。
? Clone which script? (Use arrow keys) > standalone docs sheets slides ︙
スタンドアロンかコンテナバインドか、など状況に合わせて選択してください。
↑や↓で
>
を移動Enterで決定
[結果]フォルダ構成
ローカル
プロジェクトに赤字のファイルが追加されます。
Googleドライブ
「Gドライブのルートフォルダ」にも下記が追加されます。
ファイル名は、プロジェクト名がそのまま使われるようです。
ファイルを整理
ドライブ側のファイルを整理
Googleドライブの仕様上、そのままでも特に問題はありません。
ただ、後々使いづらくなると思う(し、個人的にも気持ち悪い)ので、探しやすい場所に移動しておきます。
設定を変更
タイムゾーン
ローカルから作り始めると、タイムゾーンがアメリカになってしまうようです…
マニフェストファイル(appsscript.json)
{ "timeZone": "America/New_York", "dependencies": { }, "exceptionLogging": "STACKDRIVER", "runtimeVersion": "V8" }
実行時刻の設定などで困らないように、日本時間(JST)へ修正しておきます。
"timeZone": "Asia/Tokyo",
完了。
これで、【B】ローカルでイチから開発を始める場合の準備は完了です。
このシリーズについて
Google Apps Scriptをローカルで編集する方法について、まとめています。
誤り、分かりづらい等ありましたら、ぜひコメント欄やTwitter、お問い合わせフォーム等でご教示ください。
次回
【Clasp】ローカルでGASを書く準備 ~コーディングを楽にする~ - ゆるおたノート
連載目次
- 【Clasp】ローカルでGASを編集するメリットとデメリット - ゆるおたノート
- 【Clasp】ローカルでGASを書く準備 ~Claspをインストールする~ - ゆるおたノート
- 当記事【Clasp】ローカルでGASを書く準備 ~プロジェクトを作成する~ - ゆるおたノート
- 【Clasp】ローカルでGASを書く準備 ~コーディングを楽にする~ - ゆるおたノート
- 【Clasp】ローカルでGASを書いてみる ~スクリプトを書いてアップロードする~ - ゆるおたノート
- 【Clasp】ローカルでGASを書いてみる ~スクリプトをGitで管理する~ - ゆるおたノート
参考
全体の手順
Clasp