📖
clasp + TypeScript のGASローカル開発環境構築
npm, clasp のインストール、Googleへのログインは済んでいることを前提とする。
-
github リポジトリのクローン
git clone "repository_url"
-
GAS プロジェクトのクローン
clasp clone “SCRIPT_ID”
-
npm プロジェクトの初期化
npm init -y
-
clasp, TypeScript のローカルインストール
npm install --save-dev typescript prettier @types/google-apps-script
-
TypeScript の設定
5-1. tsconfig.json の作成
{ "compilerOptions": { "target": "ES6", "lib": ["ES5", "ES6"], "module": "none", "outDir": "dist", "rootDir": "src", "strict": true, "esModuleInterop": true, "forceConsistentCasingInFileNames": true }, "include": ["src"] }
5-2. src, dist ディレクトリ作成
mkdir src dist
-
clasp の設定
6-1. .clasp.json の
rootdir
を変更{ "scriptId": "SCRIPT_ID", "rootDir": "dist" }
6-2. appsscript.json を dist へ移動
mv appsscript.json dist/$1
-
.gitignore の作成
# npm install 時に作成されるディレクトリ node_modules/ # TypeScript のトランスパイル結果 dist/ # macOS のシステムファイル .DS_Store # ログファイル *.log # 環境変数ファイル .env # GAS のスクリプトIDが含まれるファイル .clasp.json
-
package.json の設定追加
"scripts": { "format": "prettier --write '**/*.{ts, tsx}'" }
トランスパイルの実行
-
通常
npx tsc
-
継続監視
npx tsc --watch
フォーマッターの実行
npm run format
Discussion