> ## 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.

# package.json ファイルの作成方法

> Node.js の package.json ファイル完全ガイド: 作成方法、スクリプトの設定、依存関係の管理、本番デプロイに向けたプロジェクトの準備を学びましょう。

# 📋 Node.js 用の package.json ファイル

`package.json` ファイルはあらゆる Node.js プロジェクトの心臓部です。依存関係を列挙し、自動化スクリプトを定義し、プロジェクトの動作を設定するマニフェストとして機能します。

このガイドでは、堅牢な `package.json` の設定方法を学び、プロジェクトが再現可能で、整理されており、Square Cloud 環境と互換性があることを保証します。

***

<Steps>
  <Step title="プロジェクトの初期化">
    ファイルを作成する最も安全な方法は、NPM CLI を使用することです。プロジェクトのルートに移動し、いずれかのオプションを選択してください:

    **オプション A: 対話形式（初心者におすすめ）**
    質問に一つずつ答えて、カスタムのメタデータを設定します。

    ```bash theme={null}
    npm init
    ```

    **オプション B: 自動（デフォルト）**
    すべてのデフォルト設定を受け入れて、ファイルを即座に生成します。

    ```bash theme={null}
    npm init -y
    ```
  </Step>

  <Step title="必須メタデータの設定">
    生成された `package.json` を開きます。プロフェッショナルなプロジェクトのために、以下のフィールドが正しく入力されていることを確認してください:

    * `name`: 一意のプロジェクト識別子（kebab-case を使用、例: `my-project-api`）。
    * `version`: SemVer 標準に従います（例: `1.0.0`）。
    * `main`: アプリケーションのエントリーポイント（通常は `index.js` または `src/index.js`）。
    * `type`: ES Modules（import/export）を使用する場合は `"module"` に設定し、CommonJS（require）を使用する場合は削除します。
  </Step>

  <Step title="実行スクリプトの設定">
    `scripts` セクションは自動化に不可欠です。ここで、アプリケーションをどのように起動、テスト、またはビルドすべきかを定義します。

    ```json theme={null}
    "scripts": {
      "start": "node index.js",
      "test": "echo \"Error: no test specified\" && exit 1"
    }
    ```

    **Square Cloud での初期化について:**
    環境は一般的なパターンを探しますが、Square Cloud は完全な柔軟性を提供します。アプリケーションを起動するためにシステムが実行すべきコマンドを明示的に設定できます（そうすべきです）。

    例えば、dashboard または Square 設定ファイルで **Start Command** を `npm run start` を実行するように設定すれば、上記で定義したスクリプトが確実に使用されます。
  </Step>

  <Step title="依存関係の管理">
    ここには、コードを本番環境で実行するために不可欠なライブラリが記載されます。インストールしてこのリストに自動的に保存するには:

    ```bash theme={null}
    npm install package-name
    ```

    **`devDependencies` と Square Cloud でのビルドに関する注意:**
    ローカル開発でのみ使用するツール（`eslint` や `prettier` など）は `devDependencies` に残します。

    <Warning>
      **重要:** Square Cloud はデフォルトで本番モードでインストールを実行します。つまり、`devDependencies` に記載されているパッケージは**インストールされません**。

      クラウドで**ビルド**プロセスを実行する必要がある場合（例: TypeScript のコンパイルや post-install スクリプトの実行）、それらのツールを `dependencies` に移動する必要があります。そうしないと、パッケージが不足してビルドが失敗します。
    </Warning>
  </Step>

  <Step title="高度な機能の使用">
    より複雑なプロジェクトのために、`package.json` は強力な制御機能を提供します:

    **1. Overrides（バージョンの強制）:**
    使用している依存関係が複数の脆弱性を持つサブ依存関係をインストールする場合に便利です。安全なバージョンへの解決を強制できます:

    ```json theme={null}
    "overrides": {
      "vulnerable-package": "2.0.1"
    }
    ```

    **2. Imports（パスエイリアス）:**
    `../../../utils` のような長い相対パスを避けます。`imports` を使うと、ネイティブな内部ショートカットを作成できます（最近の Node が必要です）:

    ```json theme={null}
    "imports": {
      "#utils/*": "./src/utils/*.js",
      "#database": "./src/core/database.js"
    }
    ```

    これにより、コード内で `import db from '#database'` を使ってインポートできます。
  </Step>
</Steps>

***

## 💡 ヒントとベストプラクティス

* **セマンティックバージョニング**: 本番コードが自動アップデートによって壊れるのを防ぐため、`^` を削除して重要なバージョンを固定することをお勧めします（例: `"^14.14.1"` の代わりに `"14.14.1"` を使用）。
* **セキュリティ**: 依存関係の脆弱性を特定するために、`npm audit` を定期的に実行してください。上で説明した `overrides` フィールドは、これらの問題を修正する理想的な解決策です。
* **Package-lock.json**: このファイルを `.gitignore` で削除または無視しないでください。これは、Square Cloud があなたのマシンで動作した正確な依存関係ツリーをインストールする保証となります。
* **整理**: ファイルをクリーンに保ちましょう。`scripts` セクションが大きくなりすぎた場合は、外部の自動化ツールの使用や、ファイルの分割を検討してください。

***

## 📄 最終的なファイルの例

以下は、モダンで最適化された `package.json` の例です:

```json package.json theme={null}
{
  "name": "square-cloud-project",
  "version": "1.0.0",
  "description": "Professional Node.js API",
  "main": "src/index.js",
  "type": "module",
  "scripts": {
    "start": "node src/index.js",
    "lint": "eslint ."
  },
  "imports": {
    "#services/*": "./src/services/*.js"
  },
  "dependencies": {
    "discord.js": "14.14.1",
    "dotenv": "16.3.1",
    "typescript": "5.3.3" 
  },
  "devDependencies": {
    "eslint": "8.56.0"
  }
}
```

***

## 🚀 次のステップ

`package.json` ファイルを設定したら:

1. Git リポジトリにコミットします。
2. **Square Cloud** でプロジェクトをホストします。
3. GitHub 経由で自動デプロイを設定します。
4. プロフェッショナルな Node.js アプリケーションホスティングへようこそ！

適切に構造化された `package.json` ファイルは、成功するあらゆる Node.js アプリケーションの基盤であり、アプリケーションが Square Cloud で完璧に動作することを保証します。
