ここではまって、誰もネットに公開してなかったみたいなので(簡単に調べた限り)公開します。
ChatGPT4にはまったポイントをつたえて、アドバイスもらったら意外とあっさり?できました。
以下コピペ
HtmlServiceのcreateHtmlOutputFromFileメソッドは、スクリプトプロジェクトに含まれるHTMLファイルの内容をHTML出力として返します。しかし、JavaScriptファイル(.js)を読み込む際には適していません。
代わりに、ContentServiceを使用してJavaScriptファイルをテキストとして返すことができます。以下はそのためのサンプルコードです。
function doGet(request) {
var file = DriveApp.getFileById("YOUR-FILE-ID"); // あなたのファイルIDに置き換えてください
var data = file.getBlob().getDataAsString();
return ContentService.createTextOutput(data)
.setMimeType(ContentService.MimeType.JAVASCRIPT);
}
このコードでは、指定されたIDのGoogle Drive上のファイルを取得し、その内容を文字列として読み取ります。その後、ContentServiceを使用してそのデータをテキスト出力として返し、そのMIMEタイプをJavaScriptに設定します。
このスクリプトをウェブアプリケーションとして公開したら、そのURLを使って他のウェブページからJavaScriptファイルを読み込むことができます。
なお、ファイルIDはGoogle Drive上でそのファイルを右クリックして「共有可能なリンクを取得」を選び、表示されたURLの末尾の部分です。
しかし、この方法もGASの制限(実行時間、URL Fetchコール数など)によって大量のリクエストや大規模なデータには向いていないことを覚えておいてください。
これを活用して、フレームワークを作りました。
https://fkeiwk.hateblo.jp/entry/2023/08/02/205815