320x100
List 컴포넌트 추가.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | // src/components/List.vue <template> <div> List </div> </template> <script lang="ts"> import { Vue, Component } from "vue-property-decorator"; @Component export default class List extends Vue { } </script> | cs |
List 컴포넌트를 .vue 파일로 SFC(Single File Component)로 만들었다.
기존 ts-vue에는 .ts와 .html 파일로 나눠서 만들었지만 파일하나가 관리가 쉬워서 걍 이렇게 하려고 한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | // src/index.ts // ... // @ts-ignore import List from './components/List.vue'; // add let v = new Vue({ el: "#app", template: ` <div> <List/> </div>`, components: { List // add }, store }); | cs |
index.ts에서 만든 single file component인 List.vue를 임포트해서 추가했다.
그리고 npm run dev를 해보면
1 2 3 4 5 6 7 | ERROR in ./src/components/List.vue (./node_modules/ts-loader!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./src/components/List.vue) Module not found: Error: Can't resolve './Test1.html' in 'C:\Users\user\Desktop\GITHUB\homepage\src\components' @ ./src/components/List.vue (./node_modules/ts-loader!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./src/components/List.vue) 28:22-45 @ ./src/components/List.vue @ ./src/index.ts @ multi (webpack)-dev-server/client?http://localhost:8081 ./src/index.ts | cs |
vue-loader 관련 에러가 난다. 찾아보니까 ts-loader 버전 문제인 듯.
ts-loader 버전을 14.2.2 에서 15.2.4로 업그레이드.
1 2 3 4 5 6 7 8 9 10 11 | // webpack.config.js const {VueLoaderPlugin} = require('vue-loader') // add module.exports = { //... plugins: [ // ... new VueLoaderPlugin() // add ] } | cs |
webpack config 설정에 VueLoaderPlugin을 추가했다.
참고 : [stack overflow]TypeScript Cannot detect *.vue files
ts-vue 깃헙 프로젝트도 추가로 수정이 필요할 듯 허다..
실행결과
깃허브 : add List Component(SFC)
320x100
'Project > 홈페이지' 카테고리의 다른 글
[TODO] google sheet API 연동 (0) | 2019.03.17 |
---|---|
[TODO] Google spread sheet 살펴보기 (0) | 2019.03.15 |
[TODO] vue-router, todo 컴포넌트 추가 (0) | 2019.03.14 |
[게시판] vue-markdown-loader 추가 (0) | 2019.02.12 |
[게시판] 기획 (0) | 2019.02.10 |
댓글