パッケージ管理したい(npm)
$ npm run test // npx vitest run
$ npm run lint // npx biome lint .
$ npm run build // npx tsc --noEmit
$ npm run bundle // npx rollup -c
$ npm run push // npx clasp push
GAS開発もnpmを使ってパッケージ管理できます。
このページでは、GAS開発で利用する
typescript、rollup、clasp、vitest、biome、typedocといったパッケージのインストール方法やスクリプト設定をまとめています。
参考
それぞれのパッケージの詳しい使い方は、以下のページを参照してください。
インストールしたい(npm install --save-dev)
$ npm install --save-dev typescript @types/google-apps-script
$ npm install --save-dev rollup @rollup/plugin-node-resolve @rollup/plugin-typescript
$ npm install --save-dev @google/clasp
$ npm install --save-dev vitest @vitest/coverage-v8
$ npm i -D --save-exact @biomejs/biome
$ npm install --save-dev typedoc
--save-devオプションで、開発依存(devDependencies)としてパッケージを追加します。
パッケージ設定したい(package.json)
{
"name": "my-gas-project",
"version": "0.0.1",
"private": true,
"type": "module",
"devDependencies": {
"typescript": "^5.4.0",
"@types/google-apps-script": "^1.0.0"
}
}
package.jsonの各フィールドの意味は
パッケージ管理したい(npm)を参照してください。
GAS開発では、次の2点だけ意識しておくとよいです。
private: trueは、誤ってnpm publishで公開してしまわないようにするための安全装置です。
GAS用のプロジェクトは公開する必要がないので、基本的にtrueにしておきます。
type: "module"は、.jsファイルをESModule(import/export)として扱う指定です。
rollup.config.jsのように、設定ファイル自体がESModule形式で書かれている場合に必要になります。
スクリプト設定したい(package.json)
{
"name": "...",
"scripts": {
"build": "tsc --noEmit",
"bundle": "rollup -c",
"bundle:watch": "rollup -c --watch",
"push": "clasp push",
"pull": "clasp pull",
"deploy": "npm run build && npm run bundle && npm run push",
"test": "vitest run",
"test:watch": "vitest",
"test:coverage": "vitest run --coverage",
"format:check": "biome format .",
"format:write": "biome format --write .",
"lint:check": "biome lint .",
"lint:fix": "biome lint --fix .",
"docs:api": "typedoc"
}
}
tsc → rollup → claspの3段階に、テスト(vitest)・フォーマッター/リンター(biome)・
APIドキュメント生成(typedoc)を組み合わせた、GAS開発一式のscripts設定例です。
各コマンドの意味や個別のオプションは、上記のリンク先ページで詳しく説明しています。
$ npm run deploy
$ npm test
$ npm run lint:fix