본문 바로가기
PROGRAMMING/Vue

[Vue] Vue CLI

by 안녕나는현서 2021. 11. 20.
728x90

Vue CLI

  • Vue.js 개발을 위한 표준 도구
  • 프로젝트 구성을 도와주는 역할
  • Vue 개발 생태계에서 표준 tool 기준을 목표로 함

 

- Node.js

  • JS를 브라우저가 아닌 환경에서도 구동할 수 있도록 하는 JS 런타임 환경
    • 브라우저 밖을 벗어날 수 없던 JS언어의 한계 해결
  • Chrome V8 엔진을 제공하여 여러 OS 환경에서 실행할 수 있는 환경 제공
  • 단순히 브라우저에서만 조작할 수 있던 JS를 SSR 아키텍처에서도 사용할 수 있도록 함

 

- NPM (Node Package Manage)

  • JS언어를 위한 패키지 관리자
  • Node.js 설치 시 함께 설치됨

 

Vue CLI 사용하기

- 설치

# 설치
$ npm insatll -g @vue/cli

# 버전 확인
$ vue --version

 

- 프로젝트 생성

$ vue create my-app

 

- 서버 실행

# 프로젝트 디렉토리로 이동
$ cd my-app

# 서버 실행
$ npm run serve

 

Vue 프로젝트 구조

- node_modules

  • node.js 환경의 여러 의존성 모듈

  • webpack : 모듈 간 의존성 문제 해결 위한 도구, 프로젝트에 필요한 모든 모듈 매핑, 내부적으로 종속성 그래프 빌드
    • 모듈은 단지 파일 하나를 의미 (스크립트 하나 === 모듈 하나)
    • 모듈의 수가 많아지고 라이브러리 혹은 모듈 간의 의존성이 깊어지면서 특정한 곳에서 발생한 문제가 어떤 모듈 간의 문제인지 파악 어려워짐
    • 모듈 의존성 문제를 해결해주는 작업을 Bundling이라 함
    • Bundling을 해주는 도구가 Bundler, webpack은 Bundler 중 하나
    • Bundling된 결과물은 더 이상 순서에 영향 받지 않고 동작

 

- public/index.html

  • Vue 앱의 뼈대, 실제 제공 되는 단일 html 파일

 

- src/assets

  • webpack에 의해 빌드된 정적 파일

 

- src/components

  • 하위 컴포넌트들 위치

 

- src/App.vue

  • 최상위 컴포넌트

 

- src/main.js

  • webpack이 빌드를 시작할 때 가장 먼저 불러오는 entry point
  • 실제 단일 파일에서 DOM과 data를 연결했던 것과 동일한 작업이 이루어지는 곳
  • Vue 전역에서 활용할 모듈을 등록할 수 있는 파일

 

- babel.config.js

  • babel 관련 설정이 작성된 파일
  • babel
    • JS의 ECMAScripts2015+ 코드를 이전 버전으로 번역/변환해주는 도구
    • 과거 JS의 파편화/표준화 영향 → 최신 문법 사용해도 이전 브라우저/환경에서 동작하지 않는 상황 발생
    • 원시 코드(최신 버전)를 목적 코드(구 버전)로 옮기는 번역기

 

- package.json

  • 프로젝트의 종속성 목록과 지원되는 브라우저에 대한 구성 옵션 포함

 

- package-lock.json

  • node_modules에 설치되는 모듈과 관련된 모든 의존성을 설정 및 관리
  • 팀원 및 배포 환경에서 정확히 동일한 종속성을 설치하도록 보장하는 표현
  • 사용할 패키지의 버전을 고정
  • 개발 과정 간의 의존성 패키지 충돌 방지
728x90

'PROGRAMMING > Vue' 카테고리의 다른 글

[Vue] Router  (0) 2021.11.21
[Vue] Components  (0) 2021.11.20
[Vue] Lifecycle Hooks, lodash  (0) 2021.11.15
[Vue] Template Syntax  (0) 2021.11.15
[Vue] MVVM Pattern, Vue 인스턴스 생성  (0) 2021.11.15

댓글