Vuetify가 v2.x로 버전이 변경되면서 기존 버전을 사용하던 소스들에서 여러 가지 문제가 발생한다. 그 중에 실제로 작업을 진행한 것들을 정리하고 있다. 만일 이 정리외의 사항들까지 처리해야 하는 경우라면 Release and Migration guide 문서를 참고하면 된다.
Stylus to Sass
이 문제는 Vutify v1.x 버전에서는 Stylus를 사용했지만 v2.x 버전 부터는 sass를 사용하기 때문에 소스 상에서 참고하던 stylus 파일이 존재하지 않고 sass-loader 들을 webpack이 필요로 하면서 발생하게 된다.
import해서 사용하는 소스 경로 변경
위의 2번째 라인에서 사용한 stylus/* 소스들이 제거되었기 때문이므로 이를 아래와 같이 신규 제공되는 것으로 변경하면 된다.
Webpack에서 사용할 sass, sass-loader 설치
[Vue warn]: Error in beforeCreate hook: “Error: Vuetify is not properly initialized
이 문제는 Vuetify v1.x 버전의 vuetify 초기화 방식이 v2.x 버전에서는 제대로 초기화되지 않기 때문에 발생한다.
v1.x 버전에서는 아래와 같이 main.ts 파일과 /plugins/vuetify.ts 파일을 사용해서 초기화하고 Vue에 등록해서 사용한다.
v2.x 버전에서는 위와 같이 처리하면 컴파일등의 문제는 없지만 실행 시점에 초기화되지 않는 문제가 발생하므로 아래와 같이 초기화 방법을 변경해 주어야 한다.
[Vuetify] [BREAKING] ‘app’ has been removed, use ‘<v-app-bar app>’ instead.
이 문제는 Vuetify v2.x 버전에서 기존의 app가 제거되고 <v-app-bar app>로 변경되었기 떄문에 발생한다.
위의 2번째 라인에서 사용한 <v-toolbar app ...> 태그가 제거되었기 때문이므로 이를 아래와 같이 신규 제공되는 것으로 변경하면 된다.
[Vuetify] [BREAKING] ‘clipped-left’ has been removed, use ‘<v-app-bar clipped-left>’ instead
이 문제는 Vuetify v2.x 버전에서 기존의 <v-toolbar>가 제거되고 <v-app-bar app>로 변경되었기 떄문에 발생한다.
위의 2번째 라인에서 사용한 <v-toolbar> 태그가 제거되었기 때문이므로 이를 아래와 같이 신규 제공되는 것으로 변경하면 된다.
[Vuetify] [BREAKING] ‘flat’ has been removed, use ‘text’ instead.
이 문제는 Vuetify v2.x 버전에서 <v-btn> 태그에 사용했던 flat 속성이 제거되고 text 속성을 사용하는 것으로 변경되었기 떄문에 발생한다.
위의 2번째 라인에서 사용한 flat 속성이 제거되었기 때문이므로 이를 아래와 같이 신규 제공되는 것으로 변경하면 된다.
<v-btn> 태그에서 변경된 내용은 다음과 같다.
flat -> text
round -> rounded
explicit margin removed
[Vuetify] [BREAKING] ‘outline’ has been removed, use ‘outlined’ instead
이 문제는 Vuetify v2.x 버전에서 <v-btn>, <v-autocomplete>, <v-alert>, ... 태그에 사용했던 outline 속성이 제거되고 outlined 속성을 사용하는 것으로 변경되었기 떄문에 발생한다.
위의 2번째 라인에서 사용한 <v-btn outline> 속성의 이름이 변경되었기 때문이므로 이를 아래와 같이 신규 제공되는 것으로 변경하면 된다.