GAS/HtmlServiceを利用したフロントエンド開発の受難 〜Vue@3.4.0の乱〜

前提
GASのHTML Service(doGetでhtmlファイルを返して、Webアプリを作るやつ)について
ローカルのVite + ts + Vue@3.3 + vite-plugin-singlefile
の環境を1HTMLファイルにまとめ上げて、
claspを利用してアップロードし、Webアプリ開発をしている

Vue@3.4.xで発生したバグ
defineModel
マクロが使いたくて、vueをバージョンアップ
この段階でbuildしてclasp push
すると、下記エラーでマウントすらされんくなった…
Uncaught SyntaxError: Invalid destructing assignment target
関数宣言とかで、引数を分割代入にするときで、デフォルト引数を間違って行なっている時に出るエラーみたい。
自分のコードを見直したけど、特段デフォルト引数の設定方法は間違ってなさそう…
それにローカルのhtmlファイルそのものをChromeで開いても、エラー出ずに描画されるぞ…????(宇宙猫)

GASの二重ラッピングされているiframeは他にも厳しすぎる制約があることことで有名なので、まぁGAS固有なんだろうな…と開発者ツールでソースを追ってみる
すると、ローカルのファイルではこうなってたものが、
i = `https://vuejs.com/errors/#runtime-${n}`
GASで読み込まれた時にはこうなってた………
i = `https://
${T}`, message: "alert", // これ、本来はだいぶ先のコード
………GASが読み込んでiframe内で展開する時に、ソースめっちゃ削ってね????

Vue@3.3.x と、Vue@3.4.0 とで、build後のファイルで当該箇所を比較するとこんな感じで、URLが GAS側のなんかの置換処理に引っかかっちゃったんだろうなぁ…
i = n;
i = `https://vuejs.com/errors/#runtime-${n}`;
てことで、build後のファイルでのここを@3.3.x系に合わせる置換処理バッチをいれて取り急ぎの対処としました

これ、いまさらだけど別にVueに限った話じゃないよなぁ…
GASのHtmlService.createTemplateFromFile()がプロパティを埋め込む際の置換処理で、なぜかテンプレートリテラルを含むURLがある場合、その周辺を大きく切り取ってしまう現象なわけだ