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 |
댓글