웹팩이란
웹팩이란?
최근 자바스크립트에서는 모듈을 이용하여 주로 작성이 되고 있다. 번들러는 모듈의 의존 관계를 분석하여 브라우저가 인식할 수 있는 자바스크립트 코드로 변환 후 하나 또는 여러개의 파일로 만들어 주는 도구이다. 번들러를 통해서 소스코드를 모듈별로 작성 할수 있고 모듈간의 의존성을 쉽게 관리할수 있다. 자바스크립트에서 많이 사용되고 있는 모듈 번들러 중에 하나가 웹팩이다.
웹팩을 사용하면 자바스크립트 뿐 아니라 HTML, CSS, Image 파일의 리소스까지 의존성 관리를 할수 있게 해준다.
웹팩 설치
옵션을 -D(–save-dev) 옵션을 줄 경우에는 devDependencies에 들어가는데 이는 개발용 패키지이다.
webpack-cli를 설치하면 터미널에서 webpack 커맨드를 사용할수 있다.
1 | npm install webpack webpack-cli -D |
설치가 완료되면 아래와 같이 실행할수 있다.
1 | node_modules/.bin/webpack --mode development |
웹팩 옵션
웹팩을 사용할 때 여러가지 옵션을 줄수 있다.
아래는 - 하나로 보이지만 실제로는 -를 2개 써주어야 한다.
–mode
- development : 개발용으로 번들링된다.
- production : 배포용으로 번들링된다.
- none
–entry
모듈의 의존성 그래프를 만드는 시작점을 지정 해주는 것이다. 모든 모듈의 시작 파일을 지정해준다고 생각하면 쉽다.–output
번들링된 파일의 위치와 이름을 지정할때 사용한다.–config
config 파일의 위치를 지정할때 사용한다. 기본값으로는webpack.config.js
또는webpackfile.js
이다.–progress
웹팩이 빌드되는 것을 커맨드라인으로 볼수 있게 해준다.
1 | npx webpack --mode development --entry ./src/app.js --output dist/main.js |
설정 파일 webpack.config.js
매번 위처럼 cli 명령어를 통해서 작업하기는 힘들다. config 파일을 통해서 작성 후에 webpack만 실행하면 편하게 작업할수 있다.
설정 파일 만들기
프로젝트 폴더의 루트에서 webpack.config.js
파일을 생성한다(package.json 파일과 동일한 위치).
1 | module.exports = {}; |
옵션 설정하기
옵션은 cli에서 사용했었던 옵션명을 사용한다.
mode
번들링할 모드를 설정한다.
development
- 개발용모드이다.
- 소스맵을 제공한다.
production
- 배포용모드이다.
- 코드를 압축, 난독화 한다.
- mode를 설정 하지 않을 경우 production이 default이다.
1 | module.exports = { |
entry
entry 옵션을 통해서 모듈의 시작점을 지정할수 있다.
1 | module.exports = { |
entry를 여러개 사용 할 경우 객체 형태로 넘겨 주면 된다. 이때 key 값은 사용자가 커스텀하게 설정 가능하다.
1 | module.exports = { |
output
output은 번들링 된 결과를 저장하기 위한 위치를 설정한다. 기본값은 './dist/main.js'
이다. 절대경로를 사용하는 것을 권장한다(path.resolve 사용).
1 | const path = require('path'); |
저장할 파일이름 [name]
는 동적으로 이름을 설정가능하다. entry에서 설정한 key를 filename의 이름으로 사용가능하다.
아래처럼 entry의 key를 설정 하지 않으면 default로 main이다.
1 | const path = require('path'); |
entry의 key가 app이기 때문에 번들링 된 파일은 ./dist/app.js로 만들어진다.
1 | const path = require('path'); |
package.json에 스크립트 등록하기
package.json의 scripts 부분에 아래와 같이 추가한다. 보통 build로 설정하는 듯 하다. 빌드를 할때는 npm run build
명령어를 사용하면 된다.
1 | { |
프로젝트에 기본적인 웹팩 설정하기 순서
1. npm init 명령어 실행
package.json 파일을 생성한다.
2. 웹팩 설치
1 | npm i -D webpack webpack-cli |
3. 환경설정 파일 생성하기
프로젝트의 루트 디렉토리에 webpack.config.js
을 생성한다.
4. 웹팩 스크립트를 추가
package.json에 웹팩을 실행할 스크립트를 추가한다.
5. 웹팩 스크립트 실행
npm run build
를 통해서 웹팩을 실행한다.