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