[id].vue 파일의 컴포넌트 이름이 단일 단어([id])로 되어 있어
<script setup>
문법을 사용하여 작성된 Quasar 프로젝트에서 이 문제를 해결하려면 컴포넌트 이름을 여러 단어로 변경하거나, ESLint 규칙을 비활성화하는 방법을 사용합니다. 아래에서 각각의 방법을 <script setup>
문법에 맞게 설명하겠습니다.
해결 방법 1: 컴포넌트 이름 변경
단일 단어인 [id]
에서 BlogPost
와 같은 여러 단어 이름으로 변경합니다. 파일 이름과 라우터 경로를 함께 수정해야 합니다.
파일 이름 변경
src/pages/blog/[id].vue
파일을src/pages/blog/BlogPost.vue
와 같은 다중 단어 이름으로 변경합니다.컴포넌트 이름 설정
<script setup>
문법에서는defineOptions
를 사용하여 컴포넌트 이름을 지정할 수 있습니다. 다음과 같이BlogPost.vue
파일 내부에서 설정합니다.<script setup> defineOptions({ name: 'BlogPost', }); // 컴포넌트의 나머지 코드 </script>
라우터 경로 수정
routes.js
또는router/index.js
파일에서 이 컴포넌트를 참조하는 경로를 수정해줍니다.// routes.js 또는 router/index.js import BlogPost from 'pages/blog/BlogPost.vue'; const routes = [ { path: '/blog/:id', component: BlogPost, name: 'BlogPost', }, // 다른 라우트들... ]; export default routes;
해결 방법 2: ESLint 규칙 비활성화
이 방법은 ESLint 규칙인 vue/multi-word-component-names
를 비활성화하여 단일 단어 컴포넌트 이름을 허용하는 방식입니다.
프로젝트의 ESLint 설정 파일
.eslintrc.js
또는.eslintrc.json
을 열어vue/multi-word-component-names
규칙을 비활성화합니다.// .eslintrc.js module.exports = { rules: { 'vue/multi-word-component-names': 'off', }, };
이후, Quasar 빌드를 다시 실행하여 오류가 해결되는지 확인합니다.
이 두 가지 방법 중 첫 번째 방법인 컴포넌트 이름을 다중 단어로 변경하는 것이 더 권장되는 방법입니다. 이 방법은 Vue와 Quasar 스타일 가이드를 따르며, 코드의 유지보수성과 가독성을 높이는 데도 유리합니다.