> ## Documentation Index
> Fetch the complete documentation index at: https://docs.squarecloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Node.js で Square Cloud を始める

> Node.js で Square Cloud を始める方法を学びましょう

## 🚀 はじめに

* 始める前に、Node.js と npm がシステムにインストールされていることを確認してください。まだの場合は、[Node.js 公式サイト](https://nodejs.org/)からダウンロードできます。
* 次に、Square Cloud のアカウントを作成する必要があります。これは[ログインページ](https://squarecloud.app/ja/signup)から行えます。アカウントの作成にはメール、GitHub、またはその両方を使用できます。
* 最後に、アカウントに有効な有料プランが必要です。プランを確認し、ニーズに合わせて[こちら](https://squarecloud.app/ja/pricing)から購入できます。

## ⚙️ squarecloud.app ファイルの設定

<Note>
  Square Cloud のウェブサイト経由でアプリケーションをアップロードする場合は、このセクションを無視してかまいません。サイトが自動的に `squarecloud.app` 設定ファイルを作成します。
</Note>

<Card title="詳しく見る: Square Cloud の設定ファイルの作成方法" icon="link" href="https://docs.squarecloud.app/ja/getting-started/config-file">
  squarecloud.app ファイルは、アプリケーションを設定するために使用される設定ファイルです。名前、説明、
  バージョン、メインファイルなどを定義するために使われます。
</Card>

## 📄 必要なファイル

<Tabs>
  <Tab title="JavaScript">
    * 設定ファイルに `START` フィールドが定義されていない場合、Square Cloud はデフォルトで `node` を最適化オプションおよび特定のパラメーター付きで実行します。`START` フィールドが定義されている場合は、その値が直接実行されます。設定ファイルのパラメーターに関する詳細は、[設定パラメーター](https://docs.squarecloud.app/ja/getting-started/config-file#configuration-parameters)をご覧ください。
  </Tab>

  <Tab title="TypeScript">
    * 設定ファイルに `START` フィールドが定義されていない場合、Square Cloud はデフォルトで `npx tsx MAIN` を実行し、`MAIN` で指定されたメインの TypeScript ファイルをコンパイルして実行します。`START` フィールドが定義されている場合は、その値が直接実行されます。設定ファイルのパラメーターに関する詳細は、[設定パラメーター](https://docs.squarecloud.app/ja/getting-started/config-file#configuration-parameters)をご覧ください。
  </Tab>
</Tabs>

* `node_modules` フォルダが存在しない場合、Square Cloud は `npm install --no-package-lock --no-audit --no-fund` を実行して依存関係をインストールし、`.npm` フォルダをクリーンアップします。

## 🖥️ プロジェクトの準備

### 📁 必須の設定ファイル

Node.js プロジェクトを Square Cloud にデプロイする準備をする際は、設定ファイル（`squarecloud.app/.config`）とアプリケーションの必須ファイルを zip ファイル内に含めるようにしてください。

<Warning>設定ファイル（`squarecloud.app/.config`）は zip ファイルのルートに配置する必要があります。そうでない場合、Square Cloud は deploy 中にそれを見つけることができません。</Warning>

#### 🗑️ アップロード前に除外するファイル

* `node_modules`: このフォルダはアップロードする必要はありません。本番環境でのインストール時に再作成されるためです。
* `package-lock.json`: 本番環境は `package.json` に基づいて依存関係をインストールするため、このファイルは不要です。

### 🤔 なぜこれらのファイルを除外するのか？

プロジェクトをアップロードする前に `node_modules` と `package-lock.json` を除外する理由はいくつかあります。

1. **インストールの一貫性:** `node_modules` をアップロードしないことで、依存関係が本番環境によってインストールされることが保証され、ローカルシステムの差異のない一貫したビルドが得られます。

2. **最新のインストール:** 本番環境は `package.json` に列挙された依存関係の最新の互換バージョンをインストールし、アプリケーションにクリーンなスタートを提供します。

3. **アップロードサイズの削減:** これらのフォルダを含めないことでアップロードファイルのサイズが減り、アップロードプロセスが高速化され、deploy がより効率的になります。

これを行うことで、Node.js アプリケーションが Square Cloud でのホスティングに最適な状態で準備されていることが保証されます。

### 📄 必要なファイル

Node プロジェクトをホスティングするには 3 つのファイルが必要です。

* [squarecloud.app/.config](https://docs.squarecloud.app/ja/getting-started/config-file)
* mainFile.js/.ts（メインファイルの例）
* [package.json](./how-to-create-your-package-json)（依存関係ファイル）

<Note>
  Square Cloud は `TypeScript` をネイティブにサポートしており、ts-node
  経由でプロジェクトを実行しますが、当社は本番プラットフォームであるため、常に
  `JavaScript` へのコンパイルをおすすめします。
</Note>

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

<AccordionGroup>
  <Accordion title="メインファイルが無効または破損しています" icon="file" iconType="solid">
    このエラーは、設定ファイルでアプリケーションの「main」として定義されたファイルが
    存在しない、誤って記述されている、またはパスが
    間違っている場合に発生します。例えばメインファイルがフォルダ内にある場合は、
    `folder/file.js` のように指定する必要があります。
  </Accordion>

  <Accordion title="メモリ不足" icon="memory" iconType="solid">
    ボットをホスティングするために必要な RAM の最小量は 256MB で、
    サイト/API の場合は 512MB です。ただし、アプリケーションのサイズや複雑さによっては、
    アプリケーションがメモリ不足でクラッシュするのを避けるために、より多くの RAM を
    割り当てることをおすすめする場合があります。
  </Accordion>
</AccordionGroup>

## 📤 プロジェクトのホスティング方法

Node.js プロジェクトのすべてのファイルを準備できたので、次のステップはそれらを Square Cloud にアップロードし、アプリケーションをオンラインにすることです。アップロードにはいくつかの方法がありますが、ここでは 2 つを取り上げます。Dashboard 経由と CLI 経由です。

### ダッシュボード経由

<Steps>
  <Step title="アップロードページにアクセス">
    [アップロードページ](https://squarecloud.app/ja/dashboard/new)にアクセスし、プロジェクトの zip ファイルをアップロードします。
  </Step>

  <Step title="環境を設定">
    zip をアップロードした後、プロジェクトの名前、メインファイルまたはランタイム環境、その他の設定を構成する必要があります。\
    ウェブプロジェクトをアップロードする場合は、必ず「Web Publication」を選択し、プロジェクトにサブドメインを設定してください。
  </Step>

  <Step title="プロジェクトをデプロイ">
    最後に「Deploy」ボタンをクリックして、プロジェクトを Square Cloud にホストします。\
    デプロイ後、ダッシュボードからプロジェクトのステータスとログを監視できます。

    <Frame>
      <img src="https://cdn.squarecloud.app/docs/articles/dashboard/uploading.gif" alt="Square Cloud へのアプリケーションのアップロード" style={{ borderRadius: "0.2rem" }} />
    </Frame>
  </Step>
</Steps>

### CLI 経由

この方法を使用するには、プロジェクトのルートディレクトリに `squarecloud.app` という名前の設定ファイルを作成する必要があります。このファイルには、プロジェクトに必要な設定が含まれます。

<Card title="詳細はこちら: Square Cloud の設定ファイルの作成方法。" icon="link" href="/ja/getting-started/config-file">
  squarecloud.app ファイルはアプリケーションを構成するために使用される設定ファイルであり、環境を定義するために使用されます。
</Card>

<Steps>
  <Step title="CLI をインストール">
    まず、環境に CLI がインストールされている必要があります。まだの場合は、ターミナルで次のコマンドを実行してください:

    ```
    npm install -g @squarecloud/cli
    ```

    すでにお持ちの場合は、更新することを推奨します。更新するには、ターミナルで次のコマンドを実行してください:

    <Tabs>
      <Tab title="Windows">
        ```bash theme={null}
        squarecloud update
        ```
      </Tab>

      <Tab title="Linux, macOS, and WSL">
        ```bash theme={null}
        curl -fsSL https://cli.squarecloud.app/install | bash
        ```
      </Tab>
    </Tabs>
  </Step>

  <Step title="認証">
    次に、認証して他の CLI コマンドを使用するには、[こちら](https://squarecloud.app/ja/account/security)で「Request API Key」をクリックして認証キーを取得します。認証キーを取得したら、次のコマンドを実行してください:

    ```bash theme={null}
    squarecloud auth login
    ```
  </Step>

  <Step title="プロジェクトをアップロード">
    最後に、CLI を使用してアプリケーションを Square Cloud にデプロイするには、次のコマンドを実行する必要があります:

    ```bash theme={null}
    squarecloud upload 
    ```

    または、zip を手動で作成した場合は、次を使用できます:

    ```bash theme={null}
    squarecloud upload --file <path/to/zip> 
    ```
  </Step>
</Steps>

## お問い合わせ

**技術的な問題**が解決しない場合は、**専門のサポートチーム**がお手伝いします。[**お問い合わせ**](https://squarecloud.app/ja/support)いただければ、どのような問題でも喜んで解決をサポートいたします。
