Eine Neufassung der Verwendung von Vue 2 und Vue 3 zur Verwaltung von Paketen im Lerna-Monorepo mit dem Titel: Verwendung von Vue 2 und Vue 3 zur Verwaltung von Modulen im Lerna-Monorepo
P粉221046425
2023-08-27 09:48:38
<p>Ich versuche, eine PR zu erstellen, um zu einer Open-Source-Bibliothek beizutragen, die Lerna zum Verwalten mehrerer Pakete und npm als Paketmanager verwendet. </p>
<p>Die Bibliothek unterstützt Vue 2 bereits mit dem Paket <code>support-vue</code>. Der Zweck meiner PR besteht darin, Vue 3-Unterstützung hinzuzufügen, indem ich ein neues Paket mit dem Namen <code>support-vue3</code> erstellt. </p>
<p>Paket <code>support-vue</code> hängt von bestimmten Paketen von Vue 2 und Vue 2-kompatiblen Versionen ab (<code>vue-router</code>, <code>@vue/test - utils</code>), während das Paket <code>support-vue3</code> von Vue 3-kompatiblen Versionen dieser Pakete abhängt. </p>
<p>Das Problem, das ich nicht lösen kann, ist, wie man verschiedene Versionen von Vue und zugehörigen Paketen in <code>support-vue</code> verwendet. Soweit ich weiß, wird Lerna nur eine Version zum Stammverzeichnis <code>node_modules</code> hochstufen (in diesem Fall Vue 2). Ich kann jeweils nur ein Paket zum Laufen bringen, abhängig davon, welche Version von Vue installiert ist. </p>
<p>Ich muss für jedes Paket unterschiedliche Versionen von Vue installieren. </p>
<p>Ich habe versucht, dieses Problem zu lösen, indem ich einen Paketalias in <code>package.json</code> verwendet habe, etwa so: </p>
<pre class="brush:json;toolbar:false;">{
"devDependencies": {
"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> und importieren Sie Vue von diesen Aliasen, aber <code>@vue/test-utils</code> und andere Pakete, die Vue als Peer-Abhängigkeit erfordern, werden in <code>vue</code> nicht gefunden . </p>
<p> Ich habe auch versucht, einen Filter in <code>lerna.json</code> hinzuzufügen, um die Erhöhung von vue auf das Stammverzeichnis von <code>package.json</code> zu deaktivieren. aber ohne Erfolg. </p>
<p>Ist die Verwendung verschiedener Versionen von Vue in jedem Paket in Lerna möglich, oder ist das eine Sackgasse? </p>
我认为Lerna不支持这样的事情,你可以使用SingleSpa或OpenComponent代替