Vue 2 と Vue 3 を使用して Lerna モノリポジトリでパッケージを管理するというタイトルのリライト: Vue 2 と Vue 3 を使用して Lerna モノリポジトリでモジュールを管理する
P粉221046425
2023-08-27 09:48:38
<p>Lerna を使用して複数のパッケージを管理し、npm をパッケージ マネージャーとして使用するオープン ソース ライブラリに貢献するための PR を作成しようとしています。 </p>
<p>ライブラリはパッケージ <code>support-vue</code> を使用して Vue 2 をすでにサポートしています。私の PR の目的は、<code>support-vue3</code> という新しいパッケージを作成して Vue 3 サポートを追加することです。 </p>
<p>パッケージ <code>support-vue</code> は、Vue 2 および Vue 2 互換バージョンの特定のパッケージに依存します (<code>vue-router</code>、<code>@vue/test - utils</code>)、パッケージ <code>support-vue3</code> は、これらのパッケージの Vue 3 互換バージョンに依存します。 </p>
<p>私が解決できない問題は、<code>support-vue</code> と <code>support-vue3</code> で異なるバージョンの Vue と関連パッケージを使用する方法です。私の知る限り、Lerna は 1 つのバージョンのみをルート <code>node_modules</code> にプロモートします (この場合は Vue 2)。インストールされている Vue のバージョンに応じて、一度に動作できるパッケージは 1 つだけです。 </p>
<p>パッケージごとに異なるバージョンの Vue をインストールする必要があります。 </p>
<p>次のように、<code>package.json</code> でパッケージ エイリアスを使用して、この問題を解決しようとしました。
<pre class="brush:json;toolbar:false;">{
"開発依存関係": {
"vue2": "npm:vue@2",
"vue3": "npm:vue@3",
"@vue/test-utils1": "npm:@vue/test-utils@1",
"@vue/test-utils2": "npm:@vue/test-utils@2",
...
}
}
</pre>
<p>これらのエイリアスから Vue をインポートしていますが、<code>vue</code> が <code>@vue/test-utils</code> およびピア依存関係として Vue を必要とするその他のパッケージには見つかりません。 。 </p>
<p> また、<code>lerna.json</code> にフィルターを追加して、vue のルート <code>package.json</code> への昇格を無効にし、vue をサポート パッケージの依存関係にのみ追加しようとしました。しかし無駄でした。 </p>
<p>Lerna では各パッケージで異なるバージョンの Vue を使用することは可能ですか? それとも行き止まりですか? </p>
Lerna はそのようなことをサポートしていないと思います。代わりに SingleSpa または OpenComponent を使用できます