초입문 vue-cli 프로젝트 만들기
소개
최근 vue.js를 만지기 시작해, 만지고 있으면 뭐 재밌기 때문에 기사로 할까라고 생각했습니다.
vue.js는 css를 vue의 컴포넌트 내에 스코프 할 수있는 것이 매우 좋네요.
BEM은 필요하지 않다. 됩니다! ! !
이번에는 초입문 ~vue-cli를 사용한 프로젝트 작성 절차~입니다.
코딩은 일절하지 않을 예정이므로 양해 바랍니다.
환경
$ node -v
v8.11.3
$ vue --version
3.2.1
위의 명령에서 node.js (8.9 이상)와 vue-cli가 포함되어 있는지 확인하십시오.
포함되어 있지 않은 경우는, 각자 인스톨을 부탁합니다.
아래의 명령을 설치할 수 있을까 생각합니다.
brew install node
npm install -g @vue/cli @vue/cli-service-global
vue 프로젝트 만들기
다음 명령으로 vue 프로젝트를 만듭니다.
vue create <project-name>
위의 명령을 실행하면 다음과 같은 선택이 필요합니다.
이번에는 default 대신 Manually select features를 선택했습니다.
Manually select features를 선택하면
❯◉ Babel
◯ TypeScript
◯ Progressive Web App (PWA) Support
◯ Router
◯ Vuex
◯ CSS Pre-processors
◉ Linter / Formatter
◯ Unit Testing
◯ E2E Testing
이러한 선택을 강요당할 수 있습니다.
필요한 플러그인을 선택하면 번거로운 설정을 모두 해주는 것 같습니다. 신이군요.
그건 그렇고, 프로젝트를 만든 후 추가하고 싶다면,
vue add <plugin-name>
라고 실행하면, 이것 또 귀찮은 설정등을 실시해 줍니다.
작성한 프로젝트는 아래와 같은 구조로 되어 있습니다.
<project-name>/
├── README.md
├── babel.config.js
├── node_modules
├── package-lock.json
├── package.json
├── postcss.config.js
├── public
└── src
동작 확인
프로젝트를 만들 수 있으면 프로젝트가 있는 디렉토리로 이동하여
$ npm run serve
실행하면 서버가 시작됩니다.
아래와 같은 화면이 나오면 성공입니다.
왜 이러한 화면이 표시되는지 조금 쫓아 봅니다.
자세한 내용은 모르겠지만 vue-cli-service가 잘 해주고 있다고 생각합니다.
톱 페이지는 public/index.html입니다.
public/index.html<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title>project</title>
</head>
<body>
<noscript>
<strong>We're sorry but project doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
</noscript>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>
index.html의 <div id="app"></div>
가 조금 중요합니다.
다음으로 src/main.js를 살펴 보겠습니다.
src/main.jsimport Vue from 'vue'
import App from './App.vue'
Vue.config.productionTip = false
new Vue({
render: h => h(App)
}).$mount('#app')
이 main.js는 이전 index.html <div id="app"></div>
에 App.vue를 그립니다.
이번에는 src/App.vue와 App.vue에서 호출되는 구성 요소를 살펴 보겠습니다.
src/App.vue<template>
<div id="app">
<img alt="vue logo" src="./assets/logo.png">
<helloworld msg="welcome to your vue.js app"/>
</div>
</template>
<script>
import helloworld from './components/helloworld.vue'
export default {
name: 'app',
components: {
helloworld
}
}
</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>
src/components/HelloWorld.vue<template>
<div class="hello">
<h1>{{ msg }}</h1>
<p>
For a guide and recipes on how to configure / customize this project,<br>
check out the
<a href="https://cli.vuejs.org" target="_blank" rel="noopener">vue-cli documentation</a>.
</p>
<h3>Installed CLI Plugins</h3>
<ul>
<li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-babel" target="_blank" rel="noopener">babel</a></li>
<li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-eslint" target="_blank" rel="noopener">eslint</a></li>
</ul>
<h3>Essential Links</h3>
<ul>
<li><a href="https://vuejs.org" target="_blank" rel="noopener">Core Docs</a></li>
<li><a href="https://forum.vuejs.org" target="_blank" rel="noopener">Forum</a></li>
<li><a href="https://chat.vuejs.org" target="_blank" rel="noopener">Community Chat</a></li>
<li><a href="https://twitter.com/vuejs" target="_blank" rel="noopener">Twitter</a></li>
<li><a href="https://news.vuejs.org" target="_blank" rel="noopener">News</a></li>
</ul>
<h3>Ecosystem</h3>
<ul>
<li><a href="https://router.vuejs.org" target="_blank" rel="noopener">vue-router</a></li>
<li><a href="https://vuex.vuejs.org" target="_blank" rel="noopener">vuex</a></li>
<li><a href="https://github.com/vuejs/vue-devtools#vue-devtools" target="_blank" rel="noopener">vue-devtools</a></li>
<li><a href="https://vue-loader.vuejs.org" target="_blank" rel="noopener">vue-loader</a></li>
<li><a href="https://github.com/vuejs/awesome-vue" target="_blank" rel="noopener">awesome-vue</a></li>
</ul>
</div>
</template>
<script>
export default {
name: 'HelloWorld',
props: {
msg: String
}
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
// 長くなるので割愛
</style>
이 App.vue가이 화면의 정체라는 것입니다.
끝에
vue-cli로 프로젝트 작성의 개요를 조금이라도 알 수 있으면 다행입니다.
꼭 이것을 계기로 vue.js를 만져보세요!
Reference
이 문제에 관하여(초입문 vue-cli 프로젝트 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/naotoritty/items/77bef5021cad5feba00d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ node -v
v8.11.3
$ vue --version
3.2.1
brew install node
npm install -g @vue/cli @vue/cli-service-global
vue create <project-name>
❯◉ Babel
◯ TypeScript
◯ Progressive Web App (PWA) Support
◯ Router
◯ Vuex
◯ CSS Pre-processors
◉ Linter / Formatter
◯ Unit Testing
◯ E2E Testing
vue add <plugin-name>
<project-name>/
├── README.md
├── babel.config.js
├── node_modules
├── package-lock.json
├── package.json
├── postcss.config.js
├── public
└── src
$ npm run serve
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title>project</title>
</head>
<body>
<noscript>
<strong>We're sorry but project doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
</noscript>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>
import Vue from 'vue'
import App from './App.vue'
Vue.config.productionTip = false
new Vue({
render: h => h(App)
}).$mount('#app')
<template>
<div id="app">
<img alt="vue logo" src="./assets/logo.png">
<helloworld msg="welcome to your vue.js app"/>
</div>
</template>
<script>
import helloworld from './components/helloworld.vue'
export default {
name: 'app',
components: {
helloworld
}
}
</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>
<div class="hello">
<h1>{{ msg }}</h1>
<p>
For a guide and recipes on how to configure / customize this project,<br>
check out the
<a href="https://cli.vuejs.org" target="_blank" rel="noopener">vue-cli documentation</a>.
</p>
<h3>Installed CLI Plugins</h3>
<ul>
<li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-babel" target="_blank" rel="noopener">babel</a></li>
<li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-eslint" target="_blank" rel="noopener">eslint</a></li>
</ul>
<h3>Essential Links</h3>
<ul>
<li><a href="https://vuejs.org" target="_blank" rel="noopener">Core Docs</a></li>
<li><a href="https://forum.vuejs.org" target="_blank" rel="noopener">Forum</a></li>
<li><a href="https://chat.vuejs.org" target="_blank" rel="noopener">Community Chat</a></li>
<li><a href="https://twitter.com/vuejs" target="_blank" rel="noopener">Twitter</a></li>
<li><a href="https://news.vuejs.org" target="_blank" rel="noopener">News</a></li>
</ul>
<h3>Ecosystem</h3>
<ul>
<li><a href="https://router.vuejs.org" target="_blank" rel="noopener">vue-router</a></li>
<li><a href="https://vuex.vuejs.org" target="_blank" rel="noopener">vuex</a></li>
<li><a href="https://github.com/vuejs/vue-devtools#vue-devtools" target="_blank" rel="noopener">vue-devtools</a></li>
<li><a href="https://vue-loader.vuejs.org" target="_blank" rel="noopener">vue-loader</a></li>
<li><a href="https://github.com/vuejs/awesome-vue" target="_blank" rel="noopener">awesome-vue</a></li>
</ul>
</div>
</template>
<script>
export default {
name: 'HelloWorld',
props: {
msg: String
}
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
// 長くなるので割愛
</style>
Reference
이 문제에 관하여(초입문 vue-cli 프로젝트 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/naotoritty/items/77bef5021cad5feba00d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)