GitHub が作成した、各種言語の linter を GitHub Actions として実行できるもの。Push 時や Pull Request 時などをトリガーとする。(公式資料はこちら)。
フォルダ.github
を、丸ごと自分が作業しているレポジトリにコピーする。
ESLint が吐き出すエラーの詳細はこちらを参照のこと。
- メニューからの呼び出しなどで使っている関数が
no-unused-vars
エラーとなってしまう。 - 逆に、他ファイルで定義した関数が
no-undef
エラーとして引っかかる場合がある。
例えば、スプレッドシートを開いた時に実行する関数として
function myFunction() {
let test = 'variable';
console.log(test.length);
}
function onOpen() {
SpreadsheetApp.getUi()
.createMenu('test')
.addItem('これを実行', 'myFunction')
.addToUi();
}
というスクリプトを用意すると、'myFunction' is defined but never used
と怒られるので、あらかじめファイルの冒頭に
/* exported myFunction, myFunction2, ... */
と入力することでエラーを回避できる。
また、別ファイルで定義済みの関数や変数について'LocalizedMessage' is not defined
と怒られるようなときは、同じくスクリプトファイル冒頭に
/* global LocalizedMessage, global-var1, global-var2, ... */
と入力することでエラーを回避できる。
なお、GAS 固有のクラス(SpreadsheetApp
, GmailApp
などなど)で、よく使うものは.eslintrc.yml
内のglobals
にてあらかじめ定義している。必要に応じて、追記する。
clasp clone "***********"
.clasp.json
に 1 行追加"rootDir": "./src"
mkdir src
からのmv appsscript.json src
npm init
npm install -D @google/clasp
npm install -D typescript @types/google-apps-script
npm install -D eslint prettier eslint-config-prettier eslint-plugin-prettier
npm install -D @typescript-eslint/eslint-plugin @typescript-eslint/parser