clasp/typescriptを使ってGASを書いてみよう〜既存スクリプトを改修する方法〜

GAS
この記事は約5分で読めます。

さて、今回も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

スプレッドシートやドキュメントのIDではなく、スクリプト(GAS IDEで開いた画面)のIDを指定

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でスクリプトの改修をしていく方法と、ライブラリの管理・追加方法を見てきました。

タイトルとURLをコピーしました