ビルドツールとしてnpmではなく毛糸を使用するリポジトリをチェックアウトしました。
package.jsonでは、複数のサブプロジェクトを処理するためのワークスペースを定義します。
{
"workspaces": [
"packages/*"
],
"dependencies": [],
"devDependencies": [
// long list
]
}
その結果、ルートpackage.json
には、実行時の依存関係は含まれていません。ただ packages/*/package.json
それらを含みます。
コンパイル(および開発モードで開始)するには、次のようにします。
yarn install
yarn start
workspaces
もnpmで認識され正しく使用されているドキュメントは見つかりませんでした。
それをnpmでも機能させる方法はありますか?
Monorepoでの依存関係の管理はnpmではサポートされていません。 Lerna パッケージは、相互依存関係を持つJavaScriptプロジェクトを管理するために使用されます。 Lernaは内部でYarnを使用していると思いますが、Yarnをプロジェクトのパッケージマネージャーとして使用すると、この機能はそのままでサポートされます。
以下は、YarnとLernaがどのように連携するかを確認するのに役立つレポです。 https://github.com/Quramy/lerna-yarn-workspaces-example