티스토리 뷰
vue-cli를 이용해서 vue 프로젝트를 직접 생성하면
webpack, babel 을 포함안 모든 설정이 아주 군더더기 없이 깔끔하게 설치되기때문에
별다른 고민을 할필요가 없습니다.
매끄럽게 vue 기반의 프로젝트를 실행할수 있습니다.
그런데 이미 jquery기반의 프론트엔트 프로젝트를 운영중이라면
막상 저렇게 적용하기는 어렵죠
webpack설정부터 babel, vue-loader까지 직접 설정을 해야합니다.
기존에 webpack을 사용하고 있었다면 기존 webpack설정에 vue를 위한 설정을 더해야하구요
그런데 제가 못찾는건지 아쉽게도 vue.js 홈페이지에서 해당 내용이 없더라구요
마침 비슷한 고민의 다른분들의 포스팅을 참고하여 수월하게 기존프로젝트에 vue를 추가하는 작업을 했습니다.
nodejs 기반의 샘플프로젝트인데 한번 차근차근 따라해볼까요
일단 php가 되었든 java가 되었든 nodejs가 되었든 이미 기존의 프로젝트가 있다고 가정합니다
그리고 여기에 webpack과 babel 그리고 vue를 추가하여 사용해볼것입니다
일단 vue는 당연히 필요하겠죠
그리고 webpack과 webpack-cli가 필요합니다
npm 명령어를 통해서 빌드를 할테니깐요
그리고 vue 파일을 컴파일해야하니깐 vue-template-compiler가 있어야 하고,
webpack과 연동을 위해 vue-loader가 필요합니다.
babel도 필요하고요 @babel/preset-env를 사용할겁니다
npm install vue
npm install -D webpack webpack-cli
npm install -D vue-loader vue-template-compiler
npm install -D @babel/core @babel/preset-env babel-loader
이렇게 설치를 마치고
.babelrc 파일을 생성하여 다음과 같이 입력합니다
저는 @babel/preset-env 이것을 썼는데요 다른 프리셋을 쓰실분은 다른것을 사용하셔도 됩니다.
그리고 webpack도 설정을 해야겠죠
webpack.config.js 파일을 다음과 같이 만들어봅니다
vue-loader 플러그인을 추가하고, vue-loader와 babel-load의 룰을 설정합니다
그리고 app.js, users.js 라는 두개의 파일을 읽어서 public 폴더에 app.js, users.js라는 아웃풋 파일을 만들도록 했습니다
물론 하나의 파일에 모두 넣어도 무방하지만, 만약에 프로젝트 크기가 크다면,
특정 페이지에서 안쓰이는 자바스크립트 코드, 컴포넌트까지 모두 포함되어있어 용량이 큰 코드를 한꺼번에 로드를 해야하기때문에
적당히 여러분들이 판단해서 잘라주시면 됩니다.
그리고 webpack 빌드를 사용하도록 package.json을 수정합니다
개발환경에서는 webpack의 watch 옵션을 사용해서 파일의 변화가 있을때 자동으로 작업을 수행하도록 합니다
샘플 프로젝트는 2개의 라우터를 만들었습니다
/ 경로랑 /users 이렇게 두개를 만들었어요
/ 에서는 <hello-world>라는 컴포넌트를 사용할거구요
/users에서는 <hello-user>라는 컴포넌트를 사용할겁니다
각각의 컴포넌트에 대한 vue 템플릿 싱글파일을 만들었구요
app.js와 user.js에서 각각 vue component에 등록을 하도록 했어요
/에서는 index.ejs 파일을 읽어 렌더를 하는데요
index.ejs 파일을 보시면
vue 파일을 따로 불러오고 app.js를 불러오도록 했습니다
vue core 를 포함하여 app.js 하나의 파일로 빌드할수 있는데
그것보다는 독립적인 파일로 만들어서 캐싱을 해두려고요
그러면 여러곳에서 필요할때마다 vue를 불러오고 그 뒤에 해당 페이지에서 필요한 추가적인 js를 로드하도록 할거거든요
이렇게 하면 캐시되어있는 vue core를 로드하고, 추가적으로 필요한 컴포넌트들이 있는 js 파일들 추가로 로드할테니깐
좀 더 네트워크 절약이 될것 같아요
하지만 이렇게 할경우 vue.js 로딩과 vue로 작성된 스크립트가 실행되는 시간차이가 발생할수도 있기 때문에 적절하게 조치해주셔야해요
물론 케바케니깐, 다른분들도 본인의 상황에 맞는 전략을 선택하시면 될것 같아요
잘나오는군요
깃헙에도 샘플프로젝트를 올려두었습니다. 개발하시는데 도움이 되었길 바랍니다
https://github.com/spotlight21c/vue-sample
참고링크
http://labs.brandi.co.kr/2018/10/23/chunbs.html
http://labs.brandi.co.kr/2018/08/07/kangww.html
'WEB2.0 > 프로그래밍' 카테고리의 다른 글
애플의 업데이트 요청 그리고 인증서 오류 (0) | 2020.05.02 |
---|---|
minio를 이용해 로컬개발환경에 s3를 세팅하는 방법 (0) | 2020.04.21 |
mongodb 3.2에서 4.2 로 업그레이드해보니 (0) | 2020.04.07 |
구형 리눅스(centos5)에서 아파치 2.4 설치하기 (0) | 2020.04.06 |
gitlab 사용시 401 Unauthorized while accessing 오류 발생하면 (0) | 2020.04.05 |
- Total
- Today
- Yesterday
- 어플리케이션
- 창업
- 스마트폰
- 네이버
- 앱
- 공모전
- 대학생
- 자바스크립트
- 애플
- 게임
- php
- Apple
- 앱스토어
- JavaScript
- 경진대회
- 구글
- iPhone
- 소프트웨어
- 안드로이드
- 웹표준
- AWS
- 모바일
- 아이디어
- 아이폰
- CSS
- 벤처
- 트위터
- android
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |