프론트/Vue

Vue2, Vue3 에서 지원되는 라이브러리를 만들어 보자

ZestLee 2024. 4. 20. 13:32

개요

  • 디자인 시스템을 만들 때, 컴포넌트 모듈화를 하고 싶다는 생각이 들었다
    • 마치 Vuetify 와 같은 사내 라이브러리를 만들고 싶었다
  • 하지만 사내 기술은 Nuxt2 로 이루어지고 있었다
  • Vue2 만 지원하기엔, Vue2 에 대한 지원이 끊기고, 앞으로 나아가야 할 방향은 Vue3 이기 때문에 vue2, vue3 둘 다 지원이 필요했다

삽질

다른 라이브러리들은 Vue 버전을 어떻게 지원하는걸까?

  • quasar:: 3버전부터는 vue3 만 지원
  • Vuetify:: 3버전부터는 vue3 만 지원

ㅜㅜ 진짜 없는걸까

새로운 라이브러리를 발견

https://github.com/vueuse/vue-demi

열심히 구글링하다 보니 vue-demi 라는 것을 발견함

description 에 적혀있듯이, Vue2 와 Vue3 를 위한 라이브러리를 생성하자 << 라는 목표가 담긴 라이브러리임

vue demi 의 dependencies

  • vue 가 적어도 2.7 이상은 되어야 하고, 2.6 이하면 설치하는 쪽에서 composition api 를 깔아줘야 한다

일단 해보자

일단 진짜 안 되는지 vue3 로 npm publish 를 한 뒤, vue3 와 vue2 모두 적용해 보자

vue3 는 일단 적용이 되는데,
vue2 는 아래와 같은 에러가 뜬다

이로써 vue3 과 vue2 가 같이 쓸 수 없다는 것이 증명이 되었다

일단 해보자2

그렇다면 vue demi 를 위한 설정을 하고 되는지 확인해 보자

  • 3 > 정상
  • 2.7 > 정상
  • 2.6 > 정상

css 가 안 먹는 증상이 있기는 한데, 일단 스킵하도록 하자 되긴 되니깐… ^_ㅠ

vue-demi 를 쓰고 있는 라이브러리가 여러개면 서로 충돌이 생기기도 하는 것 같다. 요건 나중에 다시 봐야 할듯?