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.
La bibliothèque prend déjà en charge Vue 2 à l'aide du package support-vue
. Le but de mon PR est d'ajouter le support de Vue 3 en créant un nouveau package appelé support-vue3
.
Package support-vue
dépend de certains packages de versions compatibles Vue 2 et Vue 2 (vue-router
, @vue/test - utils
), tandis que le package support-vue3
dépend des versions compatibles Vue 3 de ces packages.
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 support-vue
et support-vue3
. Pour autant que je sache, Lerna ne promouvra qu'une seule version à la racine node_modules
(Vue 2 dans ce cas). Je ne peux faire fonctionner qu'un seul package à la fois, selon la version de Vue installée.
Je dois installer différentes versions de Vue pour chaque package.
J'ai essayé de résoudre ce problème en utilisant un alias de package dans package.json
, comme ceci :
{ "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é>et importez Vue à partir de ces alias, mais
@vue/test-utils
et d'autres packages qui nécessitent Vue comme dépendance homologue ne sont pas trouvés dans les dépendancesvue
.J'ai également essayé d'ajouter un filtre dans
lerna.json
pour désactiver l'élévation de la vue à la racinepackage.json
mais en vain.L'utilisation de différentes versions de Vue dans chaque package est-elle possible dans Lerna, ou s'agit-il d'une impasse ?
Je pense que Lerna ne prend pas en charge une telle chose, vous pouvez utiliser SingleSpa ou OpenComponent à la place