Vue/Vue.js 문법
Vue.js 웹팩을 기반으로 하는 프로젝트 구성
IT Blue
2021. 7. 7. 07:19
프로젝트 구성 순서
1. 터미널에서 프로젝트를 생성할 디렉토리로 이동 (dir ,cd 활용)
2. npx degit 깃-저장소이름 폴더명
## 예시 ##
## 버전 내역이 삭제가 된 상태로 복제 ##
$ npx degit HyungJun-Yoo/webpack-bundler vue3-webpack-template
3. vscode 에서 생성한 폴더 열기 (기존 js 폴더 제거, HTML body 내용 제거)
4. 루트 경로에 src 폴더 생성, 내부에 main.js 파일 생성, App.vue 파일 생성
4-1. static 내부 image 폴더를 .src 내부로 이동 (폴더명 assets로 변경)
5. Vue 설치
$ npm i vue@next
6. Vue 패키지 설치
$ npm i -D vue-loader@next vue-style-loader @vue/compiler-sfc
# 특정한 파일들을 읽어서 브라우저에 출력해줄 수 있는 webpack의 loader #
$ npm i -D file-loader
7. webpack.config.js 수정
const path = require('path')
const HtmlPlungin = require('html-webpack-plugin')
const CopyPlugin = require('copy-webpack-plugin')
const { VueLoaderPlugin } = require('vue-loader')
module.exports = {
// .js, .vue 파일을 경로에서 명시하지 않아도 문제발생X
resolve: {
extensions: ['.js', '.vue'],
// 경로 별칭
alias: {
'~': path.resolve(__dirname, 'src'),
'assets': path.resolve(__dirname, 'src/assets')
}
},
// webpack은 js를 진입점으로 사용
// 파일을 읽어들이기 시작하는 진입점 설정
entry: './src/main.js',
// 결과물(번들)을 반환하는 설정
output: {
// 어떠한 경로에다가 결과물을 만들어서 내어줄지 명시 (절대경로)
// path: path.resolve(__dirname, 'dist'),
// 결과물의 파일의 이름
// filename: 'main.js',
// 기존의 만들었던 내용 제거
clean: true
},
module: {
rules: [
{
test: /\.vue$/,
use: 'vue-loader'
},
{
test: /\.s?css$/,
use: [
'vue-style-loader',
'style-loader',
'css-loader',
'postcss-loader',
'sass-loader'
]
},
{
test: /\.js$/,
use: [
'babel-loader'
]
},
{
test: /\.(png|jpe?g|gif|webp)$/,
use: 'file-loader'
}
]
},
// 번들링 후 결과물의 처리 방식 등 다양한 플러그인들을 설정
plugins: [
new HtmlPlungin({
template: './index.html'
}),
new CopyPlugin({
patterns: [
// 만들어놓은 폴더의 이름을 명시
{ from: 'static'}
]
}),
new VueLoaderPlugin()
],
devServer: {
host: 'localhost'
}
}
8. 루트 경로에 src 폴더 내부에 components 폴더 생성 (내부에는 .vue 파일)
예제