Node Package Manage
자바스크립트 언어를 위한 패키지 관리자
Node.js의 기본 패키지 관리자
Node.js와 함께 자동으로 설치됨
$ npm install -g @vue/cli
$ vue --version
$ vue create my-first-vue-app
$ npm run serve
모듈은 단지 파일 하나를 의미( ex. 스크립트 하나 === 모듈 하나 )
배경
브라우저만 조작할 수 있었던 시기의 자바스크립트는 모듈 관련 문법 없이 사용 되어짐
하지만 자바스크립트와 애플리케이션이 복잡해지고 크기가 커지자
전역 스코프를 공유하는 형태의 기존 개발 방식의 한계점이 드러남
그래서 라이브러리를 만들어 필요한 모듈을 언제든지 불러오거나
코드를 모듈 단위로 작성하는 드으이 다양한 시도가 이루어짐
과거 모듈 시스템
모듈 시스템 2015년 표준으로 등재되어 있으며 현재는 대부분의 브라우저와 Node.js가 모듈시스템을 지원
모듈 의존성 문제를 해결해주는 작업이 Bundling이고 이러한 일을 해주는 도구가 Bundler 이다.
Webpack은 다양한 Bundler 중 하나
모듈들을 하나로 묶어주고 묶인 파일을 하나(혹은 여러개)로 만들어짐
Bundling 된 결과물은 더 이상 서-순에 영향을 받지 않고 동작하게 됨
Bundling 과정에서 문제가 해결되지 않으면 최종 결과물을 만들어 낼 수 없기 때문에 유지 & 보수의 측면에서도 매우 편리해짐
VueCLI는 이러한 Babel, Webpack에 대한 초기 설정이 자동으로 되어 있음
vue
쓰고 tap키 누르면 기본 형태 만들어짐<template>
</template>
<script>
</script>
<style>
</style>
<template>
<div id="app">
<img alt="Vue logo" src="./assets/logo.png">
<MyNewComponent msg="Welcome to Your Vue.js App"/> <!-- 3. 쓴다.-->
</template>
<script>
import MyNewComponent from './components/NewComponent.vue' // 1. 불러오고
export default { // 2. components 등록하고
name: 'App',
components: {
MyNewComponent,
},
}
</script>
<style>
#app {
font-family: Avenir, Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
margin-top: 60px;
}
</style>
<template> <!-- vue 하고 tap -->
<!-- <h1>This is New componenet</h1> -->
<!-- <h1>This is New componenet</h1> -->
<!-- 하나의 파일 = 하나의 vue = 하나의 컴포넌트 / 그래서 컴포넌트가 여러개 있으면 에러-->
<!-- 만약 여러개를 쓰고 싶다면 / 이런식으로 div 안에 넣어야함-->
<div>
<h1>This is New componenet</h1>
<h1>This is New componenet</h1>
<h1>{{ msg }}</h1>
</div>
</template>
<script>
export default {
name : 'MyNewComponent', // Vue 탭에 뜨는 이름을 의미함
props : {
msg : String,
},
}
</script>
<style>
</style>