Penulisan semula penggunaan Vue 2 dan Vue 3 untuk mengurus pakej dalam monorepo Lerna bertajuk: Menggunakan Vue 2 dan Vue 3 untuk mengurus modul dalam monorepo Lerna
P粉221046425
2023-08-27 09:48:38
<p>Saya cuba mencipta PR untuk menyumbang kepada perpustakaan sumber terbuka yang menggunakan Lerna untuk mengurus berbilang pakej dan npm sebagai pengurus pakej. </p>
<p>Pustaka sudah menyokong Vue 2 menggunakan pakej <code>support-vue</code>. Tujuan PR saya adalah untuk menambah sokongan Vue 3 dengan mencipta pakej baharu yang dipanggil <code>support-vue3</code>. </p>
<p>Pakej <code>support-vue</code> bergantung pada pakej tertentu versi serasi Vue 2 dan Vue 2 (<code>vue-router</code>, <code>@vue/test - utils</code>), manakala pakej <code>support-vue3</code> bergantung pada versi serasi Vue 3 bagi pakej ini. </p>
<p>Masalah yang tidak dapat saya selesaikan ialah cara menggunakan versi Vue yang berbeza dan pakej yang berkaitan dalam <code>support-vue</code> dan <code>support-vue3</code>. Setahu saya, Lerna hanya akan mempromosikan satu versi kepada root <code>node_modules</code> (Vue 2 dalam kes ini). Saya hanya boleh mendapatkan satu pakej berfungsi pada satu masa, bergantung pada versi Vue yang dipasang. </p>
<p>Saya perlu memasang versi Vue yang berbeza untuk setiap pakej. </p>
<p>Saya cuba menyelesaikan masalah ini dengan menggunakan alias pakej dalam <code>package.json</code>, seperti ini: </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",
...
}
}
</pra>
<p> dan import Vue daripada alias ini, tetapi <code>@vue/test-utils</code> . </p>
<p> Saya juga cuba menambahkan penapis dalam <code>lerna.json</code> tetapi tidak berjaya. </p>
<p>Adakah menggunakan versi Vue yang berbeza dalam setiap pakej mungkin di Lerna, atau adakah ini jalan buntu? </p>
Saya rasa Lerna tidak menyokong perkara sedemikian, anda boleh menggunakan SingleSpa atau OpenComponent sebaliknya