프로젝트 생성하기
Default 옵션으로 프로젝트 설치하기
1. Vue 프로젝트 생성
- 명령어 'vue create 프로젝트명'을 실행함
vue create 프로젝트명
- Vue 프로젝트 설치 옵션이 나타남
- 사용할 버전을 선택하여 엔터를 입력하면 프로젝트명으로 폴더가 생성되고, 프로젝트 폴더 밑으로 개발에 필요한 기본 파일들이 자동 생성됨
2. Vue 프로젝트 실행
- 명령어 'npm run serve'를 입력하면 서버가 시작되며, 프로젝트는 기본포트인 8080으로 실행됨
- 기본 포트 외에 다른 포트를 사용하려면 'npm run serve-- --port 포트번호' 명령어로 직접 포트 번호를 지정할 수 있음
3. Vue 프로젝트 파일 구조
- node_modules : npm으로 설치된 패키지 파일들이 모여있는 디렉토리
- public : 웹팩(webpack)을 통해 관리되지 않는 정적 리소스가 모여 있는 디렉토리
- src/assets : 이미지, css, 폰트 등을 관리하는 디렉토리
- src/components : Vue 컴포넌트 파일이 모여있는 디렉토리
- App.vue : 최상위(Root) 컴포넌트
- main.js : 가장 먼저 실행되는 자바스크립트 파일로써, Vue 인스턴스를 생성하는 역할
- .gitnore : 깃허브에 업로드 할 때 제외할 파일 설정
- bable.config.js : 바벨(Babel) 설정 파일
- package-lock.json : 설치된 package의 dependency 정보를 관리하는 파일
- package.json : 프로젝트에 필요한 package를 정의하고 관리하는 파일
- README.md : 프로젝트 정보를 기록하는 파일
4. package.json 파일 내용
{
"name": "vue-project",
"version": "0.1.0",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint"
},
"dependencies": {
"core-js": "^3.8.3",
"vue": "^3.2.13"
},
"devDependencies": {
"@babel/core": "^7.12.16",
"@babel/eslint-parser": "^7.12.16",
"@vue/cli-plugin-babel": "~5.0.0",
"@vue/cli-plugin-eslint": "~5.0.0",
"@vue/cli-service": "~5.0.0",
"eslint": "^7.32.0",
"eslint-plugin-vue": "^8.0.3"
},
"eslintConfig": {
"root": true,
"env": {
"node": true
},
"extends": [
"plugin:vue/vue3-essential",
"eslint:recommended"
],
"parserOptions": {
"parser": "@babel/eslint-parser"
},
"rules": {}
},
"browserslist": [
"> 1%",
"last 2 versions",
"not dead",
"not ie 11"
]
}
- name : 프로젝트 이름을 입력함
- version : 프로젝트의 버전 정보를 입력함
- private : 이 옵션을 true로 설정하면 해당 프로젝트를 npm으로 올릴 수 없음. 개발자가 실수로 npm에 올리더라도 이 옵션이 true로 설정 되어 있으면 배포를 막을 수 있음
- script : 프로젝트 실행과 관련된 명령어를 등록함. 프로젝트 실행, 빌드 등과 같이 프로젝트 개발, 운영 시 사용되는 다양한 script 명령어를 등록하고, 쉽게 사용할 수 있음. 개발자가 직접 정의한 script는 npm run 명령어로 사용하고, npm에서 제공되는 명령어는 npm 명령어로 사용함
- dependencies : 사용 중인 패키지 정보를 입력함
- devdependencies : 프로젝트 배포 시 필요 없는, 개발 시에만 필요한 패키지 정보가 등록되는 곳
- eslintConfig : ESLint는 일관성 있게 코드를 작성하고 버그를 식별하고 회피할 목적으로 ECMAScript /Javascript 코드에서 발견된 패턴을 개발자에게 알려주는 플러그인임. 구문 분석을 위해 babel-eslint를 파서로 사용했음
- browserlist : 전 세계 사용 통계 속에서 상위 1% 이상 사용된 브라우저, 각 브라우저의 최신 버전 2개를 지원하도록 함
: 패키지(플러그인)을 설치하면 dependencies, devDependencies, eslintConfig 등은 자동으로 채워지며, name, version, private 등은 사용자가 직접 입력하여 등록할 수 있도록 함.
Manually select features 옵션으로 프로젝트 설치하기
1. Vue 프로젝트 생성
- 명령어 'vue create 프로젝트명'을 실행함
- Vue 프로젝트 설치 옵션에서 'Manually select features'를 선택함
- 프로젝트에 필요한 features를 스페이스 키를 사용하여 선택한 후 엔터키를 입력함
features는 아래와 같음
- Choose Vue version : Vue 버전을 선택
- Babel : ES6 버전 이상이나 타입스크립트로 코딩하면 범용적인 ES5 버전으로 자동 전환 지원
- TypeScript : 타입스크립트 지원
- Progressive Web App (PWA) Support : 웹앱 개발 지원
- Router : 라우터 처리를 위한 Vue-Router
- Vuex : Vue에서 상태관리를 위한 패키지
- CSS Pre-processors: Sass, Less, Stylus 등 CSS 작성을 위한 CSS 전처리기
- Linter/Formatter : 자바스크립트 코딩 컨벤션(표준 가이드)
- Unit Testing : 모카(Mocha) 등 단위 테스트를 위한 플러그인
- E2E Testing : E2E(End-to-End) 테스트로 통합 테스트를 위한 플러그인
2. 앞서 선택한 features에 대해 하나씩 세부 옵션을 선택해야 함
- Vue 버전을 선택
- Vue-Router에서 historty 모드를 사용할 것인지 선택
- linter / formatter를 선택하는데 이 옵션은 코딩 규칙을 위해 사용됨. 팀 작업 시 다수의 개발자가 공통된 코딩 스타일을 맞추기 위해 필요한 부분으로 참고한 이 서적은 ESLint + Standard config 선택을 추천했음
- Lint 적용 시점을 위한 옵션을 선택하는데 'Lint on save'와 'Lint and fix on commit' 중에 선택함
- 앞서 선택한 features인 Babel, ESLint 등에 대한 설정 옵션 파일을 별도의 config 파일로 만들지 package.json 파일 안에 만들지에 대한 옵션을 선택할 수 있음
3. preset 저장 옵션
: 향후 vue 프로젝트 생성 시 앞서 선택한 옵션과 동일하게 프로젝트를 빠르게 생성할 수 있도록 preset을 저정할 수 있음
- 저장하기를 선택하면 preset 이름을 입력할 수 있음
- 예를 들어 프리셋 저장 이름을 'vue basic'으로 지정했다면 터미널에서 명령어 'vue create vue-preset'을 입력, 실행 시 Default와 Manually select features 옵션 외에도 앞서 저장한 preset인 vue basic 설정 옵션이 확인 됨
- 해당 프리셋을 선택하면 앞서 세부적으로 설정했던 모든 옵션이 그대로 적용되어서 프로젝트가 별도의 설정 절차 없이 바로 설치됨
4. Vue 프로젝트 구조
- manually로 설치할 시 router와 vuex를 선택했다면 default와 달리 추가적으로 router와 store 폴더가 확인 될 것임
Vue 프로젝트 매니저로 프로젝트 설치하기
1. Vue 프로젝트 매니저 실행
- 명령어 'vue ui'를 실행하면 브라우저가 열리면서 기본 포트로 Vue 프로젝트 매지저가 실행 됨
2. Vue 프로젝트 생성
- 메뉴에서 '만들기' 항목을 선택해 메뉴얼 셀렉트 피쳐스 옵션을 통해 프로젝트를 선택했던 과정을 GUI 환경을 통해서 진행하면 됨
- 프로젝트가 생성 완료되면 프로젝트 대시 보드가 나타남
3. 프로젝트 대시보드 보기
3.1 대시보드
: 대시보드 메뉴에서 프로젝트를 모니터링하거나 관리할 수 있음
- 포트 중지 : 실행 중인 네트워크 포트 종료
플러그인 업데이트 : 플러그인 메뉴에 설치되어 있는 플러그인 중 업데이트 가능한 플러그인 목록이 표시되고 업데이트 할 수 있음
- 의존성 업데이트 : 의존성 메뉴에 있는 프로젝트 의존성 목록 중 업데이트가 가능한 목록이 표시되고, 바로 업데이트 할 수 있음
- 태스크 실행 : 작업목록 메뉴에서 제공하는 프로젝트 태스크인 server, build, lint, inspect 중 자주 사용하는 태스크를 선택하여 바로 실행 할 수 있음
취약점 확인 : 현재 설치되어 있는 프로젝트 내에서 취약점 정보를 제공해 줌
- 뉴스피드 : Vue 관련 주요 뉴스 확인
3.2 플러그인
- 플러그인 메뉴에서 플로젝트에 설치되어 있는 플러그인 목록을 확인할 수 있음
- '플러그인 추가' 항목을 통해 플러그인을 검색하고 설치할 수 있음
3.3 의존성
- 의존성 메뉴에서 개발에 사용하고 있는 플러그인의 버전과 정보를 확인할 수 있음
- 이 메뉴의 내용은 package.json의 dependencies(메인 의존성)와 devDependencies(개발 의존성)임
3.4 설정
- 설정 메뉴에서 프로젝트 생성 시 선택했던 features 기능의 config 파일을 관리할 수 있음
- Babel, ESLint 등과 같은 플러그인은 각각의 플러그인 사용을 위한 설정(config)을 별도로 지정할 수 있음
- 앞서서는 이를 위한 각 플러그인 전용 별도의 config 파일을 생성해서 관리할지, package.json 안에서 사용 설정을 package.json 파일 하나에서 관리할지를 선택했는데 설정 메뉴에서는 GUI 기반으로 설정하여 관리 할 수 있게 해줌
3.5 작업 목록
- 작업 목록 메뉴에서 Vue 프로젝트를 실행하고 빌드하는 작업을 수행할 수 있음
- 대시보드에서 serve를 클릭하여 프로젝트를 실행하면 프로젝트의 상태, 성능, 에셋, 의존성에 대한 실시간 정보를 확인할 수 있음
** reference : 「Vue.js 프로젝트 투입 일주일 전」, 비제이퍼블릭