라이브러리를 업데이트하려고 하는데 새 버전에는 Vue 2 대신 Vue 3, 즉tinymce-vue가 필요합니다. 불행하게도 이것은 아직 Vue 3과 완전히 호환되지 않는 bootstrap-vue를 사용하는 회사 프로젝트입니다(bootstrap-vue3은 아직 생산 준비가 되지 않았으며 아직 마이그레이션되지 않은 일부 구성 요소를 사용합니다).
주요 시도는 전체 애플리케이션을 Vue 3으로 마이그레이션하는 것입니다. 그러나 Vue 3에서 Bootstrap 구성 요소 사용을 허용하지 않거나, 호환 모드를 사용하는 경우 앱의 일부는 작동하지만 해당 구성 요소가 필요한 부분이 표시/작동하지 않거나 Vue 3이 필요한 구성 요소의 다른 부분이 표시됩니다. 부서졌습니다. 라이브러리별 호환성을 제공할 수 있는 방법이 있습니까? 아니면 이 경우 두 라이브러리가 동일한 구성 요소에 서로 다른 두 버전의 Vue를 요구할 때 권장되는 접근 방식은 무엇입니까?
이 질문을 다르게 질문해야 할지 잘 모르겠습니다. 이것은 StackOverflow의 첫 번째 질문이므로 다시 설명하거나 자세한 내용을 제공해야 하는 경우 알려 주시기 바랍니다.
문제는 Vue 2와 3 애플리케이션이 동일한 이름이지만 버전이 다르기 때문에 동일한 프로젝트에서 공존하는 것이 어렵거나 심지어 불가능하다는 것입니다.
vue
包。即使可以使用不同名称的vue
包别名或使用模块化 Vue(import Vue from 'vue'
)作为一个版本和 Vue CDN (window. Vue
) 자사 코드의 한 버전에 대해 해결해야 할 또 다른 문제는 특정 Vue 버전을 사용해야 하는 Vue 라이브러리입니다.이를 위해서는 선호하는 Vue 버전과 라이브러리를 사용하여 하위 애플리케이션을 구축하고 번들링해야 하며 이는 마이크로 프런트엔드 애플리케이션의 개념과 매우 유사합니다.
Vue 3 특정 라이브러리(tinymce-vue)를 사용하고 외부 세계와 통신하기 위해 모든 공개 API를 노출하도록 특별히 작성된 Vue 3 하위 애플리케이션이 있다고 가정합니다.
으아악Vue 2 래퍼 구성 요소는 Vue 3 하위 애플리케이션과 나머지 Vue 2 애플리케이션 간의 브리지 역할을 합니다.
으아악래퍼와 하위 애플리케이션이
provide
/inject
, 템플릿 참조 등 특정 지점을 기반으로 추가 동기화가 필요한 경우 이를 구체적으로 구현해야 합니다. 이런 점에서는 Vue 3->Vue 2 어댑터나 다른 프레임워크(Angular, React)가 포함된 어댑터와 다르지 않습니다.