Vue 2 및 Vue 3을 사용하여 Lerna 모노레포에서 패키지를 관리하는 내용을 다시 작성했습니다. 제목: Vue 2 및 Vue 3을 사용하여 Lerna 모노레포에서 모듈 관리
P粉221046425
2023-08-27 09:48:38
<p>Lerna를 사용하여 여러 패키지를 관리하고 npm을 패키지 관리자로 사용하는 오픈 소스 라이브러리에 기여하기 위해 PR을 만들려고 합니다. </p>
<p>라이브러리는 이미 <code>support-vue</code> 패키지를 사용하여 Vue 2를 지원합니다. 내 PR의 목적은 <code>support-vue3</code>라는 새 패키지를 만들어 Vue 3 지원을 추가하는 것입니다. </p>
<p>패키지 <code>support-vue</code>는 Vue 2 및 Vue 2 호환 버전의 특정 패키지에 따라 다릅니다(<code>vue-router</code>, <code>@vue/test - utils</code>), <code>support-vue3</code> 패키지는 이러한 패키지의 Vue 3 호환 버전에 따라 다릅니다. </p>
<p>제가 해결할 수 없는 문제는 <code>support-vue</code> 및 <code>support-vue3</code>에서 다양한 버전의 Vue 및 관련 패키지를 사용하는 방법입니다. 내가 아는 한, Lerna는 하나의 버전만 루트 <code>node_modules</code>(이 경우 Vue 2)로 승격합니다. 설치된 Vue 버전에 따라 한 번에 하나의 패키지만 작동할 수 있습니다. </p>
<p>각 패키지마다 다른 버전의 Vue를 설치해야 합니다. </p>
<p>저는 다음과 같이 <code>package.json</code>에서 패키지 별칭을 사용하여 이 문제를 해결하려고 했습니다. </p>
<pre class="brush:json;toolbar:false;">{
"devDependency": {
"vue2": "npm:vue@2",
"vue3": "npm:vue@3",
"@vue/test-utils1": "npm:@vue/test-utils@1",
"@vue/test-utils2": "npm:@vue/test-utils@2",
...
}
}
</pre>
<p> 이러한 별칭에서 Vue를 가져오지만 <code>@vue/test-utils</code> 및 피어 종속성으로 Vue가 필요한 기타 패키지는 <code>vue</code> . </p>
<p> 또한 루트 <code>package.json</code>에 대한 vue 상승을 비활성화하기 위해 <code>lerna.json</code>에 필터를 추가하려고 시도했습니다. 그러나 아무 소용이 없습니다. </p>
<p>Lerna에서는 각 패키지마다 다른 버전의 Vue를 사용할 수 있나요, 아니면 막다른 골목인가요? </p>
Lerna는 그런 기능을 지원하지 않는 것 같아요. 대신 SingleSpa나 OpenComponent를 사용해도 됩니다