Skip to content

Commit 9d53442

Browse files
committed
フロントエンドとバックエンドの連携とデプロイ」の節に[[用語]]記法を導入
1 parent e1ca460 commit 9d53442

1 file changed

Lines changed: 25 additions & 25 deletions

File tree

  • docs/4-advanced/05-integration-and-deployment

docs/4-advanced/05-integration-and-deployment/index.mdx

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ Viteを用いて構築されたフロントエンドと、Node.jsを用いて構
3838

3939
1. `backend`ディレクトリに移動し、`npm init`コマンドを実行して`package.json`ファイルを作成します。`type`と尋ねられた時には`module`を指定します。
4040
1. `npm install -D typescript`コマンドを実行してTypeScriptをインストールし、`npx tsc --init`コマンドを実行してTypeScriptの設定を記述するための`tsconfig.json`ファイルを作成します。
41-
1. ここでは、事前にTypeScriptをJavaScriptにトランスパイルせずにTypeScriptファイルを実行するために、次のコマンドを実行して<Term>[`tsx`パッケージ](https://tsx.is/)</Term>をインストールします。`npx tsx 実行するファイルのパス`とすることで、TypeScriptファイルを実行できます。
41+
1. ここでは、事前にTypeScriptをJavaScriptにトランスパイルせずにTypeScriptファイルを実行するために、次のコマンドを実行して[[[`tsx`パッケージ](https://tsx.is/)]]をインストールします。`npx tsx 実行するファイルのパス`とすることで、TypeScriptファイルを実行できます。
4242

4343
```shell
4444
npm install -D tsx
@@ -113,20 +113,20 @@ Viteを用いて構築されたフロントエンドと、Node.jsを用いて構
113113

114114
#### CORSに関する設定をする
115115

116-
<Term>**CORS**</Term>に関する設定を行います。
116+
[[**CORS**]]に関する設定を行います。
117117

118118
:::tip[CORS(Cross-Origin Resource Sharing)]
119119

120-
ブラウザはセキュリティ上の理由から、異なる<Term>オリジン</Term>のリソースへのアクセスを制限することがあります。なお、<Term>**オリジン**</Term>は、プロトコル、ドメイン、ポートの組み合わせによって定義されます。
120+
ブラウザはセキュリティ上の理由から、異なる[[オリジン]]のリソースへのアクセスを制限することがあります。なお、[[**オリジン**]]は、プロトコル、ドメイン、ポートの組み合わせによって定義されます。
121121

122122
<p>
123123
<OriginExplanation />
124124
</p>
125125

126-
例えば、フロントエンドの開発用サーバーの<Term>オリジン</Term>`http://localhost:5173`でバックエンドのWebサーバーの<Term>オリジン</Term>`http://localhost:3000`である場合には、これらは異なる<Term>オリジン</Term>になります。そのため、Fetch APIを使用してフロントエンドのアプリケーションからバックエンドのアプリケーションのリソースへアクセスすることはブラウザによって制限されます。
126+
例えば、フロントエンドの開発用サーバーの[[オリジン]]`http://localhost:5173`でバックエンドのWebサーバーの[[オリジン]]`http://localhost:3000`である場合には、これらは異なる[[オリジン]]になります。そのため、Fetch APIを使用してフロントエンドのアプリケーションからバックエンドのアプリケーションのリソースへアクセスすることはブラウザによって制限されます。
127127

128128
{/* prettier-ignore */}
129-
<Term>**CORS**</Term>は、このような場合でも必要に応じてリソースへのアクセスを可能にする仕組みです。クライアントからのリクエストに対して、サーバーがHTTPレスポンスヘッダにリソースへのアクセスを許可する<Term>オリジン</Term>を示す[`Access-Control-Allow-Origin`ヘッダ](https://developer.mozilla.org/ja/docs/Web/HTTP/Reference/Headers/Access-Control-Allow-Origin)を含めることで、ブラウザはそこで指定された<Term>オリジン</Term>からリソースへアクセスすることを許可します。
129+
[[**CORS**]]は、このような場合でも必要に応じてリソースへのアクセスを可能にする仕組みです。クライアントからのリクエストに対して、サーバーがHTTPレスポンスヘッダにリソースへのアクセスを許可する[[オリジン]]を示す[`Access-Control-Allow-Origin`ヘッダ](https://developer.mozilla.org/ja/docs/Web/HTTP/Reference/Headers/Access-Control-Allow-Origin)を含めることで、ブラウザはそこで指定された[[オリジン]]からリソースへアクセスすることを許可します。
130130

131131
Expressを用いる場合には、[`cors`パッケージ](https://www.npmjs.com/package/cors)を使用することで、HTTPレスポンスヘッダに`Access-Control-Allow-Origin`ヘッダなどを適切に設定することができます。
132132

@@ -139,8 +139,8 @@ Expressを用いる場合には、[`cors`パッケージ](https://www.npmjs.com/
139139
$ npm install cors
140140
$ npm install -D @types/cors
141141
```
142-
1. `.env`ファイルを編集し、<Term>環境変数</Term>`WEB_ORIGIN`の値にViteの開発用サーバーの<Term>オリジン</Term>である`http://localhost:5173`を指定します。
143-
1. `main.ts`ファイルを編集し、<Term>CORS</Term>に関する設定を行います。14行目の`app.use(cors({ origin: process.env.WEB_ORIGIN }));`により、<Term>環境変数</Term>`WEB_ORIGIN`に指定した<Term>オリジン</Term>からアクセスできるようにします。
142+
1. `.env`ファイルを編集し、[[環境変数]]`WEB_ORIGIN`の値にViteの開発用サーバーの[[オリジン]]である`http://localhost:5173`を指定します。
143+
1. `main.ts`ファイルを編集し、[[CORS]]に関する設定を行います。14行目の`app.use(cors({ origin: process.env.WEB_ORIGIN }));`により、[[環境変数]]`WEB_ORIGIN`に指定した[[オリジン]]からアクセスできるようにします。
144144

145145
```ts title="backend/main.ts" showLineNumbers
146146
import express from "express";
@@ -177,7 +177,7 @@ Expressを用いる場合には、[`cors`パッケージ](https://www.npmjs.com/
177177

178178
<video src={addDevScriptVideo} controls />
179179

180-
`package.json``scripts`プロパティに開発によく使うコマンドを登録します。次のように記載して、`npm run dev`コマンドを実行することでWebサーバーを起動できるようにしましょう。<Term>`tsx`パッケージ</Term>では、[Node.jsと同様のオプションが利用](https://tsx.is/node-enhancement#swap-node-for-tsx)できます。
180+
`package.json``scripts`プロパティに開発によく使うコマンドを登録します。次のように記載して、`npm run dev`コマンドを実行することでWebサーバーを起動できるようにしましょう。[[`tsx`パッケージ]]では、[Node.jsと同様のオプションが利用](https://tsx.is/node-enhancement#swap-node-for-tsx)できます。
181181

182182
```json title="backend/package.jsonの抜粋"
183183
{
@@ -205,11 +205,11 @@ Expressを用いる場合には、[`cors`パッケージ](https://www.npmjs.com/
205205

206206
#### バックエンドのURLを環境変数で指定する
207207

208-
`.env`ファイルを作成し、<Term>環境変数</Term>`VITE_API_ENDPOINT`の値にバックエンドのURLである`http://localhost:3000`を指定します。
208+
`.env`ファイルを作成し、[[環境変数]]`VITE_API_ENDPOINT`の値にバックエンドのURLである`http://localhost:3000`を指定します。
209209

210210
#### アプリケーションのコードを記述する
211211

212-
`App.tsx`ファイルを編集し、次のように記述します。掲示板の投稿の取得や、新しい投稿の送信には、`fetch`関数を使用します。`fetch`関数の第1引数は今までは`/posts`のように指定していましたが、ここでは`${import.meta.env.VITE_API_ENDPOINT}/posts`と指定します。`import.meta.env.VITE_API_ENDPOINT`<Term>環境変数</Term>`VITE_API_ENDPOINT`に指定されたバックエンドのURLを利用しています。
212+
`App.tsx`ファイルを編集し、次のように記述します。掲示板の投稿の取得や、新しい投稿の送信には、`fetch`関数を使用します。`fetch`関数の第1引数は今までは`/posts`のように指定していましたが、ここでは`${import.meta.env.VITE_API_ENDPOINT}/posts`と指定します。`import.meta.env.VITE_API_ENDPOINT`[[環境変数]]`VITE_API_ENDPOINT`に指定されたバックエンドのURLを利用しています。
213213

214214
```tsx title="frontend/src/App.tsx"
215215
import { useEffect, useState } from "react";
@@ -264,7 +264,7 @@ export default App;
264264

265265
:::tip[Viteでの環境変数の利用]
266266

267-
Viteは、[`VITE_`で始まる<Term>環境変数</Term>を、アプリケーション内で`import.meta.env`オブジェクトのプロパティとして利用](https://ja.vite.dev/guide/env-and-mode.html#env-variables)できるようにします。例えば、`VITE_API_ENDPOINT`という<Term>環境変数</Term>の値は、`import.meta.env.VITE_API_ENDPOINT`と記述することで利用できます。
267+
Viteは、[`VITE_`で始まる[[環境変数]]を、アプリケーション内で`import.meta.env`オブジェクトのプロパティとして利用](https://ja.vite.dev/guide/env-and-mode.html#env-variables)できるようにします。例えば、`VITE_API_ENDPOINT`という[[環境変数]]の値は、`import.meta.env.VITE_API_ENDPOINT`と記述することで利用できます。
268268

269269
なお、Viteは起動時に`.env`ファイルに記述された環境変数を読み込みます。
270270

@@ -278,16 +278,16 @@ Viteは、[`VITE_`で始まる<Term>環境変数</Term>を、アプリケーシ
278278

279279
今までの開発環境では、`npm run dev`コマンドを実行することで、バックエンドとフロントエンドのサーバーを起動していました。
280280

281-
しかし、本番環境では、これとは異なる方法を用います。バックエンドでは、<Term>ビルド</Term>済みのJavaScriptファイルを実行してWebサーバーを起動します。フロントエンドでは、Viteによる<Term>ビルド</Term>結果をRenderで配信します。
281+
しかし、本番環境では、これとは異なる方法を用います。バックエンドでは、[[ビルド]]済みのJavaScriptファイルを実行してWebサーバーを起動します。フロントエンドでは、Viteによる[[ビルド]]結果をRenderで配信します。
282282

283283
| 環境 | バックエンド | フロントエンド |
284284
| -------- | --------------------------------------------------------------------------- | ----------------------------------------------- |
285-
| 開発環境 | <Term>`tsx`パッケージ</Term>でTypeScriptファイルを実行してWebサーバーを起動 | Viteの開発用サーバーを起動 |
286-
| 本番環境 | <Term>ビルド</Term>済みのJavaScriptファイルを実行してWebサーバーを起動 | Viteによる<Term>ビルド</Term>結果をRenderで配信 |
285+
| 開発環境 | [[`tsx`パッケージ]]でTypeScriptファイルを実行してWebサーバーを起動 | Viteの開発用サーバーを起動 |
286+
| 本番環境 | [[ビルド]]済みのJavaScriptファイルを実行してWebサーバーを起動 | Viteによる[[ビルド]]結果をRenderで配信 |
287287

288288
### ビルドの設定をする
289289

290-
[「トランスパイラとモジュールバンドラ」の節](/docs/advanced/bundler/)で述べたように、フロントエンドの<Term>ビルド</Term>のための設定は、`npm create vite@latest`コマンドを実行することで自動的に生成される`package.json`ファイルに含まれています。`npm run build`コマンドを実行することで、<Term>ビルド</Term>結果が`dist`ディレクトリに出力されます。本番環境では、この`dist`ディレクトリをRenderで配信します。
290+
[「トランスパイラとモジュールバンドラ」の節](/docs/advanced/bundler/)で述べたように、フロントエンドの[[ビルド]]のための設定は、`npm create vite@latest`コマンドを実行することで自動的に生成される`package.json`ファイルに含まれています。`npm run build`コマンドを実行することで、[[ビルド]]結果が`dist`ディレクトリに出力されます。本番環境では、この`dist`ディレクトリをRenderで配信します。
291291

292292
```json title="frontend/package.jsonの抜粋"
293293
{
@@ -297,12 +297,12 @@ Viteは、[`VITE_`で始まる<Term>環境変数</Term>を、アプリケーシ
297297
}
298298
```
299299

300-
次に、バックエンドの<Term>ビルド</Term>のための設定を行いましょう。
300+
次に、バックエンドの[[ビルド]]のための設定を行いましょう。
301301

302302
<video src={setupBuildScriptsVideo} controls />
303303

304-
1. `tsconfig.json`[`outDir`オプション](https://www.typescriptlang.org/tsconfig/#outDir)の値を`"./dist"`にして、<Term>トランスパイル</Term>結果が`dist`ディレクトリに入るようにします。また、`.gitignore`ファイルに`/dist`を追加して、`dist`ディレクトリがGitの管理下に入らないようにします。
305-
1. `package.json``scripts`プロパティに次のように記載して、`npm run build`コマンドと`npm start`コマンドが使えるようにしましょう。`npm run build`コマンドで<Term>ビルド</Term>結果を`dist`ディレクトリに出力し、`npm start`コマンドで<Term>ビルド</Term>済みのJavaScriptファイルを実行できるようになります。
304+
1. `tsconfig.json`[`outDir`オプション](https://www.typescriptlang.org/tsconfig/#outDir)の値を`"./dist"`にして、[[トランスパイル]]結果が`dist`ディレクトリに入るようにします。また、`.gitignore`ファイルに`/dist`を追加して、`dist`ディレクトリがGitの管理下に入らないようにします。
305+
1. `package.json``scripts`プロパティに次のように記載して、`npm run build`コマンドと`npm start`コマンドが使えるようにしましょう。`npm run build`コマンドで[[ビルド]]結果を`dist`ディレクトリに出力し、`npm start`コマンドで[[ビルド]]済みのJavaScriptファイルを実行できるようになります。
306306

307307
```json title="backend/package.jsonの抜粋"
308308
{
@@ -316,35 +316,35 @@ Viteは、[`VITE_`で始まる<Term>環境変数</Term>を、アプリケーシ
316316

317317
### Renderにデプロイする
318318

319-
次の手順に従って、作成したアプリケーションをRenderに<Term>デプロイ</Term>しましょう。Renderに<Term>デプロイ</Term>するには、作成したアプリケーションをGitHubのリポジトリに保存しておく必要があります。
319+
次の手順に従って、作成したアプリケーションをRenderに[[デプロイ]]しましょう。Renderに[[デプロイ]]するには、作成したアプリケーションをGitHubのリポジトリに保存しておく必要があります。
320320

321321
<video src={deployVideo} controls />
322322

323-
1. バックエンドを<Term>デプロイ</Term>するため、Renderにログインした直後の画面から`Web Service`を作成します。
323+
1. バックエンドを[[デプロイ]]するため、Renderにログインした直後の画面から`Web Service`を作成します。
324324

325325
![](./web-service.png)
326326

327-
1. {/* */}<Term>デプロイ</Term>するアプリケーションのコードを含むGitHubのリポジトリを選択した後、次のように設定します。
327+
1. {/* */}[[デプロイ]]するアプリケーションのコードを含むGitHubのリポジトリを選択した後、次のように設定します。
328328

329329
![バックエンドの設定](./backend-configuration.png)
330330

331-
1. {/* */}<Term>環境変数</Term>`DATABASE_URL`でデータベースへの接続情報を設定します。<Term>環境変数</Term>`WEB_ORIGIN`は、ひとまず空のままにしておきます。
331+
1. {/* */}[[環境変数]]`DATABASE_URL`でデータベースへの接続情報を設定します。[[環境変数]]`WEB_ORIGIN`は、ひとまず空のままにしておきます。
332332

333333
![](./backend-environment-variable.png)
334334

335-
1. フロントエンドを<Term>デプロイ</Term>するため、`Static Site`を作成します。
335+
1. フロントエンドを[[デプロイ]]するため、`Static Site`を作成します。
336336

337337
![](./static-site.png)
338338

339339
1. 次のように設定します。
340340

341341
![フロントエンドの設定](./frontend-configuration.png)
342342

343-
1. {/* */}<Term>環境変数</Term>`VITE_API_ENDPOINT`に先ほど<Term>デプロイ</Term>したバックエンドのURLを設定します。
343+
1. {/* */}[[環境変数]]`VITE_API_ENDPOINT`に先ほど[[デプロイ]]したバックエンドのURLを設定します。
344344

345345
![](./frontend-environment-variable.png)
346346

347-
1. バックエンドの<Term>環境変数</Term>の設定を再度開き、<Term>環境変数</Term>`WEB_ORIGIN`に先ほど<Term>デプロイ</Term>したフロントエンドの<Term>オリジン</Term>を設定します。
347+
1. バックエンドの[[環境変数]]の設定を再度開き、[[環境変数]]`WEB_ORIGIN`に先ほど[[デプロイ]]したフロントエンドの[[オリジン]]を設定します。
348348

349349
![](./backend-environment-variable-updated.png)
350350

0 commit comments

Comments
 (0)