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代替