さて、今回もclasp関係の投稿になります。
前回はclaspをnpmにインストールして、clasp経由でスクリプト(スタンドアロン・コンテナバインドそれぞれ)の作り方、要は始め方を紹介してきました。
一から作るってケースも、もちろん多いのですが、案外このブログを見てくれている方であれば、これまでいくつもGASを作ってきていて、それを改修したいケースが実は一番多い気もします。
ということで、今回は既存のプロジェクトをclaspで改修する方法の紹介です。
claspで既存プロジェクトをローカルに取り込む方法
何はともあれ、既存のGASスクリプトをローカルにもってくる必要があります。コピペ?ってことはさすがになくて、ちゃんとclaspコマンドがあります。
保存したいディレクトリを作成、移動して以下のコマンドを実行します。
clasp clone projectId
projectIDですが、今回はファイルのIDではなく、スクリプトのIDを指定してください。ファイルのIDを指定して使うケースの方が多いかと思いますが、ここは気をつけるところです。スクリプト画面にいくとurlが以下のようになっていると思うので、以下の{id}部分を抽出してください。
https://script.google.com/u/3/home/projects/{id}/edit
clasp clone実行結果
clasp cloneを実行すると、実行したディレクトリに以下のファイルが出来上がります。
clasp.json appsscript.json {スクリプトファイル名}.js
このファイルを更新していけばOKです。
ライブラリがある場合のclasp関係
さて、ライブラリがある場合にcloneしたらどうなるか、そして、ライブラリをローカルで追加したい場合はどうしたらいいかを見ていきましょう。
ライブラリ込みのプロジェクトをcloneした結果
ライブラリをプロジェクトに導入して clasp cloneしてみましょう。サンプルは以下です。chatworkclinetライブラリがインポートされているプロジェクトを対象に見ていきましょう。

このプロジェクトをcloneします。
clasp clone scriptId
先ほど見てきたようにclone + scriptIdでclone可能です。cloneするとappsscript.jsonに以下のようにdependenciesが含まれてきます。
{
"timeZone": "Asia/Tokyo",
"dependencies": {
"libraries": [
{
"userSymbol": "ChatWorkClient",
"version": "18",
"libraryId": "1nf253qsOnZ-RcdcFu1Y2v4pGwTuuDxN5EbuvKEZprBWg764tjwA5fLav"
}
]
},
"exceptionLogging": "STACKDRIVER",
"runtimeVersion": "V8"
}
dependencies.librariesオブジェクトにリストで、GAS IDEでインポートしたライブラリが含まれています。
プロパティとして以下の要素を含みます。
プロパティ | 内容 |
userSymbol | ライブラリの表示名称(ライブラリのインポート時に決めた名称) |
version | ライブラリのバージョンnumber |
libraryId | ライブラリのスクリプトId |
GAS IDEでもappscript.json(マニュフェストファイル)をopenにすれば、同様の情報が含まれていることがわかると思います。
ローカルでライブラリを追加する方法
それでは、ローカルでライブラリを追加するにはどうしたらいいでしょうか?
シンプルにappsscript.jsonファイルのdependenciesに追加していけばOKです。今回はOAuth2ライブラリを追加してみます。
{
"timeZone": "Asia/Tokyo",
"dependencies": {
"libraries": [
{
"userSymbol": "ChatWorkClient",
"version": "18",
"libraryId": "1nf253qsOnZ-RcdcFu1Y2v4pGwTuuDxN5EbuvKEZprBWg764tjwA5fLav"
},
{
"userSymbol": "OAuth2",
"libraryId": "1B7FSrk5Zi6L1rSxxTDgDEUsPzlukDsi4KGuTMorsTQHhGBzBkMun4iDF",
"version": "41"
}
]
},
"exceptionLogging": "STACKDRIVER",
"runtimeVersion": "V8"
}
これをclasp pushでGAS本番環境に当ててみましょう。
以下のようなメッセージがターミナルに表示されると思います。マニュフェストファイルの更新の際に発生する確認文言ですので、”y”を選択してください。

以下のようにGAS IDEのライブラリ部分に追加されていることがわかるかと思います。

まとめ
今回は、【clasp/typescriptを使ってGASを書いてみよう〜既存スクリプトを改修する方法〜】として、claspシリーズの解説を行なってきました。
claspでスクリプトの改修をしていく方法と、ライブラリの管理・追加方法を見てきました。