Bun のパッケージマネージャーは npm の "workspaces" をサポートしています。これにより、コードベースを同じリポジトリに存在する複数の個別の「パッケージ」に分割でき、互いに依存し、(可能な場合)node_modules ディレクトリを共有できます。
ワークスペースを実験するには、このサンプルプロジェクト をクローンしてください。
ルートの package.json には "dependencies"、"devDependencies" などを含めないでください。各パッケージは自己完結型であり、独自の依存関係を宣言する必要があります。同様に、ルートパッケージを誤って npm に公開しないように "private": true を宣言するのが一般的です。
{
"name": "my-monorepo",
"private": true,
"workspaces": ["packages/*"]
}すべてのパッケージを packages ディレクトリに配置するのが一般的です。package.json の "workspaces" フィールドはグロブパターンをサポートしているため、packages/* を使用して packages の各サブディレクトリを個別の パッケージ(ワークスペースとも呼ばれる)として指定できます。
.
├── package.json
├── node_modules
└── packages
├── stuff-a
│ └── package.json
└── stuff-b
└── package.jsonワークスペース間の依存関係を追加するには、"workspace:*" 構文を使用します。ここでは stuff-a を stuff-b の依存関係として追加しています。
{
"name": "stuff-b",
"dependencies": {
"stuff-a": "workspace:*"
}
}追加されたら、プロジェクトルートから bun install を実行して、すべてのワークスペースの依存関係をインストールします。
bun install特定のワークスペースに npm 依存関係を追加するには、適切なディレクトリに cd で移動し、通常どおり bun add コマンドを実行します。Bun はあなたがワークスペースにいることを検出し、必要に応じて依存関係をホイスティングします。
cd packages/stuff-a
bun add zodBun のパッケージマネージャーの完全なドキュメントについては、ドキュメント > パッケージマネージャー を参照してください。