Une réécriture de l'utilisation de Vue 2 et Vue 3 pour gérer les packages dans le monorepo Lerna intitulée : Utilisation de Vue 2 et Vue 3 pour gérer les modules dans le monorepo Lerna
P粉221046425
2023-08-27 09:48:38
<p>J'essaie de créer un PR pour contribuer à une bibliothèque open source qui utilise Lerna pour gérer plusieurs packages et npm en tant que gestionnaire de packages. </p>
<p>La bibliothèque prend déjà en charge Vue 2 à l'aide du package <code>support-vue</code>. Le but de mon PR est d'ajouter le support de Vue 3 en créant un nouveau package appelé <code>support-vue3</code>. </p>
<p>Package <code>support-vue</code> dépend de certains packages de versions compatibles Vue 2 et Vue 2 (<code>vue-router</code>, <code>@vue/test - utils</code>), tandis que le package <code>support-vue3</code> dépend des versions compatibles Vue 3 de ces packages. </p>
<p>Le problème que je ne parviens pas à résoudre est de savoir comment utiliser différentes versions de Vue et les packages associés dans <code>support-vue</code> et <code>support-vue3</code>. Pour autant que je sache, Lerna ne promouvra qu'une seule version à la racine <code>node_modules</code> (Vue 2 dans ce cas). Je ne peux faire fonctionner qu'un seul package à la fois, selon la version de Vue installée. </p>
<p>Je dois installer différentes versions de Vue pour chaque package. </p>
<p>J'ai essayé de résoudre ce problème en utilisant un alias de package dans <code>package.json</code>, comme ceci : </p>
<pre class="brush:json;toolbar:false;">{
"Dépendances dev" : {
"vue2": "npm:vue@2",
"vue3": "npm:vue@3",
"@vue/test-utils1" : "npm:@vue/test-utils@1",
"@vue/test-utils2" : "npm:@vue/test-utils@2",
...
}
}
≪/pré>
<p> et importez Vue à partir de ces alias, mais <code>@vue/test-utils</code> et d'autres packages qui nécessitent Vue comme dépendance homologue ne sont pas trouvés dans les dépendances <code>vue</code> . </p>
<p> J'ai également essayé d'ajouter un filtre dans <code>lerna.json</code> pour désactiver l'élévation de la vue à la racine <code>package.json</code> mais en vain. </p>
<p>L'utilisation de différentes versions de Vue dans chaque package est-elle possible dans Lerna, ou s'agit-il d'une impasse ? </p>
Je pense que Lerna ne prend pas en charge une telle chose, vous pouvez utiliser SingleSpa ou OpenComponent à la place