GASをlocal環境+typescriptで使用する
code:install.sh
# make a project directory
$mkdir your-project-dir
$cd your-project-dir
# initialize git & yarn
$git init
$git create -p # register the git private repository at GitHub
$yarn init
$yarn add --dev @google/clasp @types/google-apps-script @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint eslint-config-prettier eslint-plugin-prettier prettier
$yarn -s clasp login # localにinstallされたclaspでloginを実行する
$yarn -s clasp create --title="your project name" --rootDir=src
# この後の Wizardではstandaloneを選択
Note:
script IDが含まれている
個人で使用するprojectの場合は除外する
script IDがわかっても、アクセス権限がなければ閲覧・編集できない
githubに上げて公開しても問題ない
code: appsscript.json
{
"timeZone": "Asia/Tokyo",
"exceptionLogging": "STACKDRIVER"
}
code:tsconfig.json
{
"compilerOptions": {
"target":"ESNext",
"types": [
"@types/node",
"@types/google-apps-script"
],
"strict":true,
"moduleResolution":"node"
}
}
code:.eslintrc.json
{
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:prettier/recommended",
"prettier/@typescript-eslint"
],
"plugins": [
"@typescript-eslint"
],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaVersion":11,
"sourceType": "module"
},
"rules": {
"prettier/prettier": [
"error",
{
"printWidth": 80,
"semi": true,
"singleQuote": true,
"trailingComma": "es5",
"tabWidth": 4
}
]
}
}
code:.claspignore
# ignore all files...
**/**
# except the extensions...
!appsscript.json
!**/*.gs
!**/*.js
!**/*.ts
!**/*.html
# ignore even valid files if in...
.git/**
node_modules/**
.eslintrc.json
References