GASをローカル環境(clasp + TS + ESLint)で開発したい人向けのテンプレートです
- claspをglobalにインストール
npm install -g @google/clasp
-
claspでログインしていない場合は
clasp login
でGoogleアカウントにログイン -
.clasp.json
のスクリプトIDをデプロイしたいGASプロジェクトIDで置き換え
- 必要なライブラリをインストール
npm install
"scripts": {
"build": "./node_modules/.bin/tsc",
"lint": "./node_modules/.bin/eslint src/*.ts",
"push": "npm run build && clasp push",
"watch": "./node_modules/.bin/tsc-watch --onSuccess \"clasp push\"",
"deploy": "npm run push && ./deploy.sh"
},
npm run build
:./src
以下の.ts
ファイルをコンパイルnpm run lint
:./src
以下の.ts
ファイルを静的解析npm run push
:./dist
以下のコードをGAS環境にアップロードnpm run watch
:./src
以下のコードを監視し、変更があればpush
npm run deploy
: デプロイ済みのWebアプリがある場合、現在のコードでデプロイプロジェクトを更新
tsc
で以下のエラーが出る
node_modules/@types/google-apps-script/google-apps-script.base.d.ts(590,13): error TS2403: Subsequent variable declarations must have the same type. Variable 'MimeType' must be of type '{ new (): MimeType; prototype: MimeType; }', but here has type 'MimeType'.
✅ MimeTypeという名前が重複している(と思われる)ので、当該行をコメントアウトしてください