diff --git a/README.jp.md b/README.jp.md new file mode 100644 index 0000000..79bcf13 --- /dev/null +++ b/README.jp.md @@ -0,0 +1,335 @@ +

+ + React & Google Apps Script logos +

+

+ 更新 2022年:React v17 と React Fast Refreshをサポートしました。 +

+ +
+ +[![Status](https://img.shields.io/badge/status-active-success.svg?color=46963a&style=flat-square)]() +[![GitHub Issues](https://img.shields.io/github/issues/enuchi/React-Google-Apps-Script.svg?color=lightblue&style=flat-square)](https://github.com/enuchi/React-Google-Apps-Script/issues) +[![GitHub Pull Requests](https://img.shields.io/github/issues-pr/enuchi/React-Google-Apps-Script.svg?color=blue&style=flat-square)](https://github.com/enuchi/React-Google-Apps-Script/pulls) +[![License](https://img.shields.io/github/license/enuchi/React-Google-Apps-Script?color=pink&style=flat-square)](/LICENSE) + +
+ +

🚀 このプロジェクトは、Google Sheets, Docs, Forms and Slides内にReactアプリを開発するためのBoilerplateプロジェクトです。個人開発、Google Workspace Marketplaceのアドオンを公開するような開発に最適です。 +

+ +--- + +## 📝 目次 + +- [概要](#about) +- [インストール](#install) + - [前提条件](#prerequisites) + - [はじめに](#getting-started) +- [デプロイ](#deploy) +- [[New!] ローカル開発](#local-development) + - [React 開発ツールの使い方](#dev-tools) +- [使い方](#usage) + - [付属サンプルアプリ](#the-included-sample-app) + - [[New!] TypeScript](#new-typescript) + - [パッケージ追加](#adding-packages) + - [スタイル(CSS など)](#styles) + - [スコープの変更](#modifying-scopes) + - [サーバー側 Google Apps Script 関数の呼び出し](#calling-server-side-google-apps-script-functions) + - [オートコンプリート(自動補完)](#Autocomplete) +- [作者](#authors) +- [感謝の言葉](#acknowledgement) + +
+ +## 🔎 概要 + +[Google Apps Script](https://developers.google.com/apps-script/overview)は、Google が開発した JavaScript ベースの開発プラットフォームです。Google Sheets、Docs、Forms、およびその他の Google Apps 用のアプリケーションとアドオンを開発することができます。 + +[ダイアグラムウィンドウ](https://developers.google.com/apps-script/guides/html)にカスタムユーザーインタフェースを追加することができますが、Google Apps Script は、シンプルな HTML ページ用に設計されています。AppsScript テンプレートと jQuery を使います。 + +しかし、このリポジトリを使うことで、[React](https://reactjs.org/)アプリをダイアグラム Window で実行することができますし、Google Apps 用のアプリケーションとアドオンを公開することができます。 + +

+ React & Google Apps Script +

+ +このリポジトリは React と今までのウェブサイト構築に使用するのと同じ開発ツールをすべて Google Apps Script プロジェクト内で使用できるボイラープレートプロジェクトです。 + +開始方法は以下を参照してください。 + +
+ +## 🚜 インストール + +以下の手順に従って、ローカル PC に React プロジェクトのコードをセットアップします。また、`clasp`にログインできるので、コマンドラインから React プロジェクトを管理できます。 + +プロジェクトをデプロイして、Google スプレッドシートで実際に表示する方法については、[デプロイ](#deploy)を参照してください。 + +### 前提条件 + +- [Node.js](https://nodejs.org/en/download/) v10 以上がインストールされていること +- `npm` v6 以上がインストールされていること。 +- [script.google.com/home/usersettings](https://script.google.com/home/usersettings)を確認して「Google Apps Script API」がオンになっていること。 +- [New!] 開発中にライブリロードを使う場合は、ローカル環境で HTTPS を使えるようにする必要があります。どのように設定するかは、[ローカル開発](#local-development)をご覧ください。 + +### 🏁 はじめに + +**1.** まず、リポジトリをクローンして、依存ライブラリ(dependencies)をインストールします。 + +```bash +$ git clone https://github.com/enuchi/React-Google-Apps-Script.git +$ cd React-Google-Apps-Script +$ npm install +``` + + + +**2.** 次に、[clasp](https://github.com/google/clasp)にログインしましょう。clasp により、ローカル環境で Google Apps Script プロジェクトを管理できます。 + +```bash +$ npm run login +``` + + + +**3.** 次に、セットアップスクリプトを実行して、コマンドラインから Google スプレッドシートとスクリプトプロジェクトを新規作成します。 + +```bash +$ npm run setup +``` + + + +Google スプレッドシートを新規作成するのではなく、既にある Google スプレッドシートとスクリプトファイルを使用することもできます。 + +
+ 既存のスプレッドシートを使用する手順については、こちらを参照してください。 + +以下、3 つの「キーと値(Key-Value)」を使用して、このプロジェクトのルートにある`.clasp.json`ファイルを更新する必要があります(具体例として`.clasp.json.SAMPLE`ファイルを参照してください)。 + +```json +{ + "scriptId": "1PY037hPcy................................................", + "parentId": ["1Df30......................................."], + "rootDir": "./dist" +} +``` + +- `scriptId`: 既存スクリプト(GAS)プロジェクトの`scriptId(スクリプトID)`です。Google スプレッドシートメニューの**拡張機能 > App Script**を選択し、スクリプトエディタが開いたら、**左ナビ > プロジェクト設定 > ID > スクリプト ID**から取得することがきます. +- `parentId`:スクリプトプロジェクトがバインドされている親ファイル (Google スプレッドシート、ドキュメントなど)の ID の配列を指定します。`parentId(親ID)`は、URL から取得できます。URL 形式は、「https://docs.google.com/spreadsheets/d/{親ID}/edit」です。 +- `rootDir`:「./dist」を必ず設定してください。プロジェクトファイルの保存に使用されるローカルビルドフォルダーです。 + +
+ +次に、React アプリをデプロイして、Google スプレッドシートでライブ表示できるようにしましょう。 + +
+ +## 🚀 デプロイ + +deploy コマンドを実行します。マニフェストファイルを更新するように求められる場合があります(`Manifest file has been updated. Do you want to push and overwrite? (y/N)`)。 `y`と入力します。 + +```bash +$ npm run deploy +``` + +deploy コマンドは、サーバーコード(Google Apps Script)、クライアントコード(React コード)、および構成ファイルを本番環境設定(production settings)を使用して全てのファイルをビルド&デプロイするコマンドです。バンドルされたファイルは`dist/`フォルダーに出力され、クラウド上の Google Apps Script プロジェクトに push されます。 + +`npm run open`をターミナルで実行し、新規作成した Google スプレッドシート(ファイル名:"My React Project")を開きます。"My React Project"を開いている場合は、必ずページを再読み込みしてください。新メニュー("My Sample React Project")が表示されることが確認できます。 + + + +
+ +## 🎈 [NEW!] ローカル開発 + +クライアント側の React アプリをローカルで開発し、変更内容を Google スプレッドシートのダイアログウィンドウ内で直接確認できます。 + + + +ローカル開発を開始するには、1. 証明書の生成とインストール(初回のみ)、2. 開始(start)コマンド実行、の 2 手順が必要です。 + +1. ローカル開発用の証明書の生成 + + mkcert パッケージをインストールします: + + ```bash + # mac: + $ brew install mkcert + + # windows: + $ choco install mkcert + ``` + + [その他インストールオプションはこちら。](https://github.com/FiloSottile/mkcert#installation) + + 次に、mkcert をインストールします: + + ```bash + $ mkcert -install + ``` + + リポジトリに証明書を作成します: + + ``` + $ npm run setup:https + ``` + +2. 開始(start)コマンドを実行します: + ```bash + npm run start + ``` + +開始(start)コマンドは、開発ビルドを作成、デプロイし、ローカルファイルを提供します。 + + + +開始(start)コマンドを実行した後、"My React Project"スプレッドシートのメニュー項目の 1 つを開きます。例えば、"My Sample React Project > Sheet Editor"です。 これで、ローカルファイルが提供されるはずです。React アプリに変更を加えて保存すると、アプリは Google スプレッドシート内で即座にリロードされ、サーバー側の function にアクセスできるようになります! + + + +[Fast Refresh](https://github.com/pmmmwh/react-refresh-webpack-plugin)のお陰で、ファイルが変更時にコンポーネントのみが更新され、状態(state)が失われないようになりました。 + +
+ +### 🔍 React DevTools の使い方 + +React DevTools は、開発中に React コンポーネントの階層を表示できるツールです。 + +
+ React DevToolsのインストール手順 +
+ +React アプリは、iframe で実行されているため、React DevTools のスタンドアロン版を使用する必要があります ([詳細はこちら](https://github.com/facebook/react/tree/main/packages/react-devtools#usage-with-react-dom))。 + +1. React DevTools を devDependencies(開発用の依存関係)としてインストールします。: + + ```bash + npm install -D react-devtools + ``` + +2. ターミナルで`npx react-devtools`を実行して、React DevTools スタンドアロン版を起動します。 + +3. React アプリの `` の先頭に `` を追加します。例として、Bootstrap 版サンプルの[index.html](https://github.com/enuchi/React-Google-Apps-Script/blob/e73e51e56e99903885ef8dd5525986f99038d8bf/src/client/dialog-demo-bootstrap/index.html)に追加してみてください。 + +4. アプリをデプロイ (`npm run deploy:dev`)すると、React DevTools が実行され、アプリの階層が表示されます。 + + + +5. 本番環境にデプロイする前に、`