Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
4
Help us understand the problem. What is going on with this article?
@query1000

【GAS】V8 runtimeに切り替えるとき、claspの人はマニフェストを手動で書き換えること!

More than 1 year has passed since last update.

あらすじ:

  • GAS (Google Apps Script) はJavaScript 1.6〜1.8という古い構文だった
  • 最近それがV8 runtimeというエンジンに変わってECMAScript準拠のナウい構文になった
  • Webのスクリプトエディタを使っている人はRunメニューから切り替えられる
  • claspを使っている人はローカルのappsscript.jsonを手動で書き換える必要がある

これでわかった人は読む必要なし。

詳細:

GASのランタイムがRhinoというのからV8というのに変更になった。
これまでのGASのJavaScriptは1.6〜1.8とかの古いものだったが、ECMAScript準拠のナウいものになったらしい。
めでたい。

参考記事: https://tonari-it.com/gas-v8-runtime/

上の「隣にIT」さん(いつもお世話になります!)の記事の執筆時点では、本来「実行>Enable new Apps Script runtime powerd by V8」で変更できるが、まだ「表示>マニフェストファイルの変更」でマニフェストファイルを表示して変更しなければならなかった、と書かれているが、2020-02-10では、ちゃんと実行メニューに「Enable...」と表示されるようになった。

ちなみにこれ、トグルになっていて、Enable状態で実行メニューを見るとDisable、Disable状態で見るとEnableが表示されていて、RhinoとV8が交互に切り替わるようになっている。
(Rhinoってオライリーのサイ本のサイだね!w)

また、ぼくの場合スクリプトエディタを開いただけで「V8が使えますがどうしますか」的なメッセージが出てきて(スクショ撮りはぐった><)、はい、と答えるだけでV8に切り替わった。

ただ、ぼくはclaspを使っていて、ローカル上にRhinoのレガシーソースが溜まっていた(※)。
これをpushしようとすると

? Manifest file has been updated. Do you want to push and overwrite?(y/N)

と言われる。

「y」と入力すると、マニフェストファイルも置き換わってしまい、レガシー状態に戻ってしまう。
デフォルトを受け入れてEnterを押下するか「N」と入力すると、マニフェストファイル以外のソースもアップロードされない。

この場合は、claspのローカル環境にあるマニフェストファイル、appsscript.jsonを手動で書き換える。
末尾だけ掲げる。

appsscript.json書き換え前
  "exceptionLogging": "STACKDRIVER"
}

=>

  "exceptionLogging": "STACKDRIVER",
  "runtimeVersion": "V8"
}

jsonはjsと違ってケツカンマを許さないので注意。
https://qiita.com/daijinload/items/149410c975d6c008101e

これでpushするとV8状態のまま開発中のソースも正しくアップロードされる。
とりあえずスプレッド構文が使えてハッピーだ。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Spread_syntax

(この項終わり)

※過去のぼくのclaspとの格闘はコチラ:
https://qiita.com/query1000/items/259a60ba1be8743b858b
https://qiita.com/query1000/items/b25ae9deb700c7bf3212

追記:
2020-02-10現在、HtmlService.getUserAgent()がnullを返すという問題がある。
https://ja.stackoverflow.com/questions/62926/gas%e3%81%aev8-runtime%e3%81%a7htmlservice-getuseragent%e3%81%8c%e4%bd%bf%e3%81%88%e3%81%aa%e3%81%84

4
Help us understand the problem. What is going on with this article?
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

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
4
Help us understand the problem. What is going on with this article?