728x90
반응형
webpack.config.js
var path = require("path");
var webpack = require("webpack");
module.exports = {
mode: "production",
entry: "./src/main.js",
output: {
path: path.resolve(__dirname, "./dist"),
publicPath: "/dist/",
filename: "build.js",
},
module: {
rules: [
{
test: /\.css$/,
use: ["vue-style-loader", "css-loader"],
},
{
test: /\.vue$/,
loader: "vue-loader",
options: {
loaders: {},
// other vue-loader options go here
},
},
{
test: /\.js$/,
loader: "babel-loader",
exclude: /node_modules/,
},
{
test: /\.(png|jpg|gif|svg)$/,
loader: "file-loader",
options: {
name: "[name].[ext]?[hash]",
},
},
],
},
resolve: {
alias: {
vue$: "vue/dist/vue.esm.js",
},
extensions: ["*", ".js", ".vue", ".json"],
},
devServer: {
historyApiFallback: true,
noInfo: true,
overlay: true,
},
performance: {
hints: false,
},
devtool: "#eval-source-map",
};
if (process.env.NODE_ENV === 'production') {
module.exports.devtool = '#source-map'
// http://vue-loader.vuejs.org/en/workflow/production.html
module.exports.plugins = (module.exports.plugins || []).concat([
new webpack.DefinePlugin({
'process.env': {
NODE_ENV: '"production"'
}
}),
new webpack.optimize.UglifyJsPlugin({
sourceMap: true,
compress: {
warnings: false
}
}),
new webpack.LoaderOptionsPlugin({
minimize: true
})
])
}
Line 설명
1 - 2
: 라이브러리 사용
5
: Webpack 3버전에서는 사용하지 않음
6
: Webpack으로 변환할 대상 파일, 진입점
7
: 대상 파일을 변환해서 결과물이 나올 파일의 이름, 경로 등
9
: CDN 배포 시 주소에 포함될 수 있게끔 속성을 정의하는 것
12
: Loader의 속성을 정의
15
: CSS 파일에 대해 CSS 로더를 이용해 변환을 시킨 후 작업
19
: VUE 파일에 대해 VUE 로더를 사용
27
: JS 파일에 대해 BABEL 로더(자바스크립트 최신 문법을 여러 브라우저가 호환 가능하도록 변환)를 돌려 변환
29
: 프로젝트 내 제외할 경로 지정
32
: 이미지 파일에 대해 FILE 로더를 이용하여 이미지들을 Webpack에서 인식할 수 있게 한다.
40
: Webpack으로 파일의 연관관계를 해석할 때 파일의 해석방식 정의
41
: 별칭 지정
44
: import 시 파일 확장자 생략 가능하도록 미리 지정
46
: Webpack Dev Server 설정
51
: 성능 관련된 힌트를 주는 속성. 결과물의 사이즈(Webpack에서 제한한 크기) 가 초과가 되면 경고를 주는 속성
54
: 개발을 용이하게 하기 위한 소스맵 제공
57 - 76
: Webpack 4버전에서 mode: 'production' 와 동일
728x90
반응형
'Dev > Webpack' 카테고리의 다른 글
[Webpack] Dev Server (0) | 2020.09.16 |
---|---|
[Webpack] ES6 Modules (0) | 2020.09.16 |
[Webpack] Webpack (0) | 2020.09.15 |
[Webpack] NPM (0) | 2020.09.14 |
댓글