질문 : 번들링이 왜 필요한가요?
크루답변
번들링을 해주지 않는다면 다양한 상황이 일어나 어려움에 처할 수 있습니다. 예를 들어,
등의 어려움이 생길 수 있기 때문에 번들링은 꼭 필요합니다.
질문 : 사용가능한 번들러?
질문 : 웹팩 사용 이유?
var path = require('path')
var webpack = require('webpack')
module.exports = {
mode: 'production', // 해당 웹팩 설정파일은 배포를 위한 모드이다.
entry: './src/main.js', // 웹팩이 빌드를 시도할 때, 첫 진입점 파일을 의미한다.
output: {
path: path.resolve(__dirname, './dist'), // 빌드의 결과물이 저장될 폴더명
publicPath: '/dist/', // 1) 아래 작성
filename: 'build.js' // 빌드 결과물의 이름
},
module: {
rules: [
{
test: /\.css$/,
use: [
'vue-style-loader',
'css-loader'
],
},
// .css 확장자를 가진 파일 모두, css-loader, vue-style-loader를 적용시킨다.
{
test: /\.vue$/,
loader: 'vue-loader',
options: {
loaders: {
}
// other vue-loader options go here
}
},
// .vue 확장자를 가진 파일 모두, vue-loader를 적용시킨다.
{
test: /\.js$/,
loader: 'babel-loader',
exclude: /node_modules/
},
// .js 확장자를 가진 파일 모두, babel-loader를 적용시킨다. 단, node_modules 폴더는 제외시킨다.
{
test: /\.(png|jpg|gif|svg)$/,
loader: 'file-loader',
options: {
name: '[name].[ext]?[hash]'
}
}
// .png|jpg|gif|svg 확장자를 가진 파일 모두, file-loader를 적용시킨다. 이때 파일명 뒤에 해쉬를 붙인다. (이미지가 캐싱되어도 해쉬값이 변경되면 이미지 업데이트시 다시 새로운 이미지를 불러오게하기 위함)
]
},
resolve: {
// 2
alias: {
'vue$': 'vue/dist/vue.esm.js'
},
// 3
extensions: ['*', '.js', '.vue', '.json']
},
// 데브 서버 실행시, 옵션지정 참고 - https://webpack.js.org/configuration/dev-server/
devServer: {
historyApiFallback: true,
noInfo: true,
overlay: true
},
// 빌드결과물 크기에 대한 경고를 띄울수있는 옵션 - https://webpack.js.org/configuration/performance/
performance: {
hints: false
},
// 소스매핑스타일에 대한 옵션 (빌드에 대한 소요시간에 영향을 끼칠 수도 있다) - https://webpack.js.org/configuration/devtool/
devtool: '#eval-source-map'
}