-
반응형
Entry
웹팩에서 특정 웹서비스를 변환하기 위해 설정하는 진입점으로 자바스크립트의 파일 경로입니다.
module.exports = { entry: './src/index.js' }
webpack.config.js에서 위와 같이 설정을 할 시 웹팩을 실행했을 때 src 폴더안에 있는 index.js 진입점으로 웹팩이 빌드를 수행합니다.
엔트리의 여러가지 진입점
엔트리는 여러가지의 진입점을 설정 할 수 있습니다.
module.exports = { entry: { login: './src/LoginView.js', main: './src/MainView.js' } }
위와 같이 엔트리 포인트를 분리하는 경우는 싱글 페이지 애플리케이션이 아닌 특정 페이지로 진입했을 때 서버에서 해당 정보를 내려주는 형태의 멀티 페이지 애플리케이션에 적합합니다.
Output
웹팩으로 변환된 파일들이 생성되는 파일 경로입니다.
module.exports = { output: { filename: 'bundle.js' } }
Output 파일 이름 옵션
앞에서 살펴본
filename
속성에 여러 가지 옵션을 넣을 수 있습니다.module.exports = { output: { filename: '[name].bundle.js' } };
- 결과 파일 이름에
entry
속성을 포함하는 옵션
module.exports = { output: { filename: '[id].bundle.js' } };
- 결과 파일 이름에 웹팩 내부적으로 사용하는
모듈 ID
를 포함하는 옵션
module.exports = { output: { filename: '[name].[hash].bundle.js' } };
- 매 빌드시 마다
고유 해시 값
을 붙이는 옵션
module.exports = { output: { filename: '[chunkhash].bundle.js' } };
- 웹팩의 각 모듈 내용을 기준으로 생생된 해시 값을 붙이는 옵
빌드를 할 때마다 filename에 고유한 값들을 넣어 줄 수 있습니다.
Loader
웹팩이 웹 서비스를 변환을 시도 할 때 자바스크립트가 아닌 파일들을 변환할 수 있도록 도와주는 속성입니다.
module.exports = { module: { rules: [{ test: /\.css$/, use: ["style-loader", "css-loader"] }] } }
엔트리나 아웃풋 속성과는 다르게
module
라는 이름을 사용합니다. test 항목은 어느 확장자에 로더를 적용 시킬 것인지 정해주는 역할입니다. 위와 같은 코드는 모든 css 파일이라고 보시면됩니다. 그다음 use는 어떤 로더를 사용 할 것인가를 정합니다. (배열안에서 오른쪽부터 읽기 시작함)Plugin
플러그인 윕팩이 동작할 때 추가적인 기능을 넣을 수 있는 속성입니다. 즉 플러그인은 웹팩으로 빌드한 결과물의 형태를 바꾸는 역할을 합니다.
var webpack = require('webpack'); var HtmlWebpackPlugin = require('html-webpack-plugin'); module.exports = { plugins: [ new HtmlWebpackPlugin(), new webpack.ProgressPlugin() ] }
위의 두 플러그인은 각각 아래와 같은 역할을 합니다.
- HtmlWebpackPlugin : 웹팩으로 빌드한 결과물로 HTML 파일을 생성해주는 플러그인
- ProgressPlugin : 웹팩의 빌드 진행율을 표시해주는 플러그인
참고:https://joshua1988.github.io/webpack-guide/concepts/plugin.html
반응형'코딩' 카테고리의 다른 글
Vscode 주석 색상 변경하기 (0) 2021.10.05 Vscode Prettier 설치 후 적용 안될 때 (0) 2021.10.05 Webpack 개념 정리 (0) 2021.10.03 Node.js와 npm(node package manager) (0) 2021.10.03 callback function 아주 간단 정리 (0) 2021.09.29 - 결과 파일 이름에