Viteで作ったWebアプリをClaspでGASにデプロイするまで
Web アプリケーションを無料でホストする必要が生まれた。非プログラマが運用できる且つ Google Drive に保存された画像を参照することが要件であるためGASを使うことにした。ここにはメモも兼ねてその手順を残しておく。
Setup
volta install node volta install yarn@3.5.0 volta install vite yarn create vite ➤ YN0000: ┌ Resolution step ➤ YN0000: └ Completed ➤ YN0000: ┌ Fetch step ➤ YN0000: └ Completed ➤ YN0000: ┌ Link step ➤ YN0000: │ ESM support for PnP uses the experimental loader API and is therefore experimental ➤ YN0000: └ Completed ➤ YN0000: Done with warnings in 0s 113ms ✔ Project name: … gas ✔ Select a framework: › React ✔ Select a variant: › TypeScript + SWC Scaffolding project in /Users/***/work/tmp/gas... Done. Now run: cd gas yarn yarn dev
vite を使ってプロジェクトを作成する。VSCode で開いてみると下記のようにエラーが多く表示される。
PnP
これは yarn PnP という機能によるものである。node_modules 配下にライブラリを展開せず仮想的にロードするというものらしい。
VSCode はデフォルトで node_modules を参照してしまうのでこのようなエラーが発生する。公式ドキュメントを読むと sdk を入れる方法が記載されていた。
yarn add -D @yarnpkg/sdks yarn sdks vscode
実際にsdk入れてみるとエラーは解消された。
Clasp
GAS にデプロイする上では下記の記事が非常に参考になった。現在でも記載されたとおりに進めれば何も問題なくデプロイすることができた。
記事中に記載のコマンドを自分の環境では一部変更した。
npm i vite-plugin-singlefile
->yarn add -D vite-plugin-singlefile
npm i -g @google/clasp
->yarn add -D @google/clasp
- これにより以降
clasp
はyarn clasp
と読み換えて実行する
- これにより以降
Google Drive の画像を参照する
Google Drive に保存されている画像を開き、「新しいウィンドウで開く」とすると https://drive.google.com/file/d/${id}/view
というURLで画像が開かれる。このURLを https://drive.google.com/uc?export=view&id=${id}
と変更して画像を読み込むように実装を変更する。
簡単な社内ツールならこれですぐ作れちゃいそう。