claspのREADMEを日本語訳

追記

この情報は古いです、本家の最新のREADMEを参考にしてください(気が向いたら更新します もしくは編集リクエストお願いします)

原文
https://github.com/google/clasp/blob/a556599e78bdc3f168e3bb5cdc2ff0a55909f6f5/README.md

# Clasp

>  [Apps Script](https://developers.google.com/apps-script/) をローカルで開発するためのClasp ( **C**ommand **L**ine **A**pps **S**cript **P**rojects)

**[codelab](https://g.co/codelabs/clasp) で始めよう！**

## 概要

**🗺️ ローカル開発:** `clasp` で、GASのプロジェクトをローカルで開発できるようになります。つまり、ソースをコード管理したり、他の開発者と共同開発したり、あなたのお気に入りのツールを使うことができます。

**🔢 バージョン管理:** プロジェクトの作成・更新・表示・複数のデプロイが可能になります。

**📁 コードの構造化:** [script.google.com](https://script.google.com)上でのフラットなプロジェクトをローカルでフォルダーで管理できます。
例:

- _script.google.com での表示_:
    - `tests/slides.gs`
    - `tests/sheets.gs`
- _ローカル_:
    - `tests/`
        - `slides.js`
        - `sheets.js`

**🔷 TypeScriptでGASを書く:**

 - アロー関数
 - オプションの構造型
 - クラス
 - 型推論
 - インターフェース
 - [And more...](https://github.com/google/clasp/blob/master/docs/typescript.md)(英語)

## インストール

`clasp` のインストール

```sh
sudo npm i @google/clasp -g
```

次に、 Apps Script API を有効化する: https://script.google.com/home/usersettings

(有効化できなければならこれを実行してください)

```sh
sudo npm i -g grpc @google/clasp --unsafe-perm
```

## コマンド

GASのプロジェクト管理を提供する基本的なコマンド

> 注意: ほとんどのコマンドは、 `clasp login` と `clasp create/clone` のあとに実行する必要があります。

- [`clasp login [--no-localhost] [--creds <file>]`](#login)
- [`clasp logout`](#logout)
- [`clasp create [--title <title>] [--type <type>] [--rootDir <dir>] [--parentid <id>]`](#create)
- [`clasp clone <scriptId | scriptURL>`](#clone)
- [`clasp pull [--versionNumber]`](#pull)
- [`clasp push [--watch] [--force]`](#push)
- [`clasp status`](#status)
- [`clasp open [scriptId] [--webapp]`](#open)
- [`clasp deployments`](#deployments)
- [`clasp deploy [--versionNumber <version>] [--description <description>] [--deploymentId <id>]`](#deploy)
- [`clasp undeploy [deploymentId]`](#undeploy)
- [`clasp version [description]`](#version)
- [`clasp versions`](#versions)
- [`clasp list`](#list)

### 高度なコマンド

> **注意**: これらのコマンドはぷろじぇくとIDか認証情報を必要とします。（下記参照）

- [`clasp logs [--json] [--open] [--watch]`](#logs)
- [`clasp run [functionName] [--nondev]`](#run)
- [`clasp apis list`](#apis)
- [`clasp apis enable <api>`](#apis)
- [`clasp apis disable <api>`](#apis)
- [`clasp setting <key> [value]`](#setting)

## リファレンス

### login

ログインします。認証情報は `.clasprc.json` に保存されます。

```sh
$ clasp login
```

#### オプション

- `--no-localhost`: ローカルサーバーで実行しない。代わりに手動でコードを入力する。 
- `--creds <file>`: カスタム認証情報を使用します。 `.clasprc.json` をカレントディレクトリに保存します。このファイルは非公開にしてください。

### logout

ログアウトします

```sh
clasp logout`
```

### Create

新しいプロジェクトを作成します。プロジェクト名が指定されていない場合は入力を求めます。

#### オプション

- `--type [docs/sheets/slides/forms]`: 指定した場合、Document、Spreadsheet、Presentation、Formにアタッチされたプロジェクトを作成します。 `--parentId` を指定したときは無視されます。
- `--title` : プロジェクトのタイトル
- `--rootDir` : プロジェクトのファイルを保存する場所の指定。指定しない場合カレントディレクトリになります。
- `--parentId` : 親プロジェクトのID。 GoogleDoc、Googleシート、Googleフォーム、GoogleスライドのIDを指定してください。指定がない場合スタンドアロンプロジェクトになります。

#### 例

- `clasp create`
- `clasp create --type standalone` (デフォルト)
- `clasp create --type docs`
- `clasp create --type sheets`
- `clasp create --type slides`
- `clasp create --type forms`
- `clasp create --type webapp`
- `clasp create --type api`
- `clasp create --title "My Script"`
- `clasp create --rootDir ./dist`
- `clasp create --parentId "1D_Gxyv*****************************NXO7o"`

これらのオプションは下記のように組み合わせることができます。

- `clasp create --title "My Script" --parentId "1D_Gxyv*****************************NXO7o" --rootDir ./dist`

### Clone

script.google.com からクローンする

#### Options

- `scriptId | scriptURL`: スクリプトのIDかURLを指定する。
- `versionNumber`: 指定したバージョンを取得する。

#### 例

- `clasp clone 15ImUCpyi1Jsd8yF8Z6wey_7cw793CymWTLxOqwMka3P1CzE5hQun6qiC`
- `clasp clone https://script.google.com/d/15ImUCpyi1Jsd8yF8Z6wey_7cw793CymWTLxOqwMka3P1CzE5hQun6qiC/edit`

### Pull

リモートからプロジェクト情報を取得し、ローカルファイルを更新します。

#### オプション

- `--versionNumber`: 取得するバージョンの番号

#### 例

- `clasp pull`
- `clasp pull --versionNumber 23`

### Push

script.google.com にpushする。

これらのファイルは無視される。:

- `.` で始まるファイル
- 非対応の拡張子
-  `.claspignore` の内容に一致するファイル

#### Options

- `--watch`: ローカルの更新を監視し、何秒化ごとにプッシュします。
- `-f` `--force`: 強制的に上書きします。
- `-w` `--watch`: ローカルのファイルを監視し、更新がアレば自動でプッシュします。

#### 例

- `clasp push`
- `clasp push -f`
- `clasp push --watch`

### Status

更新されたファイルの一覧表示

これらのファイルは無視される。:

- `.` で始まるファイル
- 非対応の拡張子
-  `.claspignore` の内容に一致するファイル

#### 例

- `clasp status`

### Open

現在のプロジェクトをブラウザで開く。

#### オプション

- `scriptId`: プロジェクトのID
- `--webapp`: ブラウザでWebアプリケーションを開く

#### 例

- `clasp open`
- `clasp open [scriptId]`
- `clasp open --webapp`

### デプロイメント

デプロイされるスクリプトのリストを表示する。

#### Examples

- `clasp deployments`

### Deploy

バージョンを指定してスクリプトをデプロイします。デプロイしたバージョンが表示されます。

#### Options

- `-V <version>` `--versionNumber <version>`: デプロイするバージョン
- `-d <description>` `--description <description>`: デプロイの説明
- `-i <id>` `--deploymentId <id>`: 再デプロイする際のID

#### 例

- `clasp deploy` (create new deployment and new version)
- `clasp deploy --versionNumber 4` (create new deployment)
- `clasp deploy --desc "Updates sidebar logo."` (deploy with description)
- `clasp deploy --deploymentId 123` (create new version)
- `clasp deploy -V 7 -d "Updates sidebar logo." -i 456`

### Undeploy

スクリプトをアンデプロイする。

#### Options

- `deploymentId`: デプロイのID

#### 例

- `clasp undeploy` (undeploy the last deployment.)
- `clasp undeploy "123"`

### Version

不変なバージョンを作る。

#### Options

- `description`: スクリプトのバージョンの説明

#### 例

- `clasp version`
- `clasp version "Bump the version."`

### Versions

バージョンの一覧表示

#### 例

- `clasp versions`

### List

最新のGASプロジェクトの一覧を表示します。（？）

#### 例

- `clasp list # helloworld1 – xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ...`

## 高度なコマンド

> **注意**: プロジェクトIDの設定が必要です。

### Logs

最近の StackDriver logs を表示します。（Logger.logではなくconsole.logです）

#### Options

- `--json`: JSONで出力します。
- `--open`: StackDriverのログをブラウザで開きます。
- `--watch`: 5秒毎に最新のログを取得する。

#### 例

```
clasp logs
ERROR Sat Apr 07 2019 10:58:31 GMT-0700 (PDT) myFunction      my log error
INFO  Sat Apr 07 2019 10:58:31 GMT-0700 (PDT) myFunction      info message
```

- `clasp logs --json`
- `clasp logs --open`
- `clasp logs --watch`

### Run

リモートで実行する

実行に必要なこと:

 1. 認証情報を使ってログインします (`clasp login --creds creds.json`)
 1. スクリプトを、実行可能なAPIとしてデプロイします(GUIから簡単にできます).
 1. スクリプトのすべてのAPIを有効にします。

#### Options

- `functionName`: 実行したい関数名。
- `nondev`: trueの場合、non-devModeで実行します。

#### 例

- `clasp run 'sendEmail'`

### List/Enable/Disable Google APIs

利用可能/不可能なAPIを一覧表示します。

#### List APIs

[Advanced Services](https://developers.google.com/apps-script/guides/services/advanced) として有効にすることができるGoogle APIを一覧表示します。

- `clasp apis`
- `clasp apis list`

#### Enable/Disable APIs

Google CloudプロジェクトのAPIを有効または無効にします。これらのAPIはGmailApp、BigQueryなどの拡張サービスを介して使用されます。

APIの名前は `clasp apis list` で取得することができます。


- `clasp apis enable drive`
- `clasp apis disable drive`

### Help

ヘルプを表示します。

#### 例

- `clasp help`

### Setting

設定ファイル `.clasp.json` を更新します。

 `newValue` を省略した場合は現在の設定値を返します。

#### Options

- `settingKey`: 変更したい設定です。
- `newValue`: 設定に対する新しい値です。

#### 例

- `clasp setting scriptId`
- `clasp setting scriptId new-id`

## ガイド

### Ignore File (`.claspignore`)

`.gitignore` のように、`.claspignore` でアップロードしたくないファイルを無視することができます。


1. プロジェクトのルートディレクトリに `.claspignore` という名前のファイルを作ります。
1. 除外するパターンを追加します。

 _注意_ : `.claspignore` ファイルは[Anymatch](https://github.com/micromatch/anymatch)でパースします。 `.gitignore` とは特にディレクトリについて大きく異なります。
ディレクトリを無視するにはこのように書いてください。
`**/node_modules/**`.

マニフェストファイルと `build/main.js` を除く全てを無視する例はこのようになります。

```
**/**
!build/main.js
!appsscript.json
```

## Project Settings File (`.clasp.json`)

`clone` または `create` を実行すると、 `clasp` の設定を記述するための `.clasp.json` がカレントディレクトリに作成されます。

例:

```json
{
  "scriptId": "",
  "rootDir": "build/",
  "projectId": "project-id-xxxxxxxxxxxxxxxxxxx",
  "fileExtension": "ts",
  "filePushOrder": ["file1.ts", "file2.ts"]
}
```

以下の設定値を利用できます。

### `scriptId` (必須)

ターゲットとするGASプロジェクトのIDを指定します。プロジェクトのURLの、 `/d/` と `/edit` の間の値です。
`https://script.google.com/d/<SCRIPT_ID>/edit`.

### `rootDir` (任意)

claspがプロジェクトファイルを保存する **ローカル** ディレクトリを指定します。指定がない場合、カレントディレクトリになります。

### `projectId` (任意)

ターゲットとするGoogle Cloud PlatformプロジェクトのIDです。GASプロジェクトはGoogle Cloud Platformに関連付けれらています。

1. `clasp open` を実行する。
1. ブラウザで、 `リソース > Cloud Platform プロジェクト`をクリックする
1. プロジェクトIDを指定する。 `project-id-xxxxxxxxxxxxxxxxxxx`

手動で設定しなくても、clasp は必要なときにIDを尋ねます。

### `fileExtension` (任意)

GASプロジェクトの **ローカル** のスクリプトファイルの拡張子を指定します。

### `filePushOrder` (任意)

最初にプッシュするファイルを指定します。
実行順に依存するスクリプトに役立ちます。他のすべてのファイルはこのファイルのあとにプッシュされます。

## トラブルシューティング

このライブラリを使用するには、 node のバージョン6.0.0以上が必要です。下記のようにして確認し、必要であればnodeをアップグレードしてください。(n はnodeのバージョン管理ツールです。)

```sh
node -v # Check Node version
sudo npm install n -g
sudo n latest
```

## README Badge

あなたのプロジェクトに clasp を使用しますか？使うのであれば README Badge を追加してください。

[![clasp](https://img.shields.io/badge/built%20with-clasp-4285f4.svg)](https://github.com/google/clasp)

```
[![clasp](https://img.shields.io/badge/built%20with-clasp-4285f4.svg)](https://github.com/google/clasp)
```

## clasp の開発

ビルド方法は [開発ガイド](docs/develop.md)を参照してください。それほど難しくはありません。

## Contributing

このツールはGASプロジェクトのローカルでの開発を可能にすることを目的としています。
コア機能やユースケースを見たい場合はGitHubのissueを探すか、ユースケースの詳細な提案を作成してください。

プルリクエストは大歓迎しています。[issues](https://github.com/google/clasp/issues)を確認してください。特に、**good first issue** (はじめての人に適したissue)や **help wanted** のタグが付いたものをお願いします。

### プルリクエストを送信する方法

1. `tests/test.ts`でテストケースを調べ、プルリクエストが影響を与える可能性があるケースを試してください。
1. [tslint](https://palantir.github.io/tslint/)を実行してください。: `npm run lint`.
1. 機能することを確認したあとにプルリクエストを送信してください。

⚡ Powered by the [Apps Script API](https://developers.google.com/apps-script/api/).