Webpack 구성 파일

구성 파일

Webpack 구성 파일을 프로젝트 루트(root) 위치에 생성하고 진입, 진출 파일 경로, 모드 등을 설정합니다.

// Node.js 모듈 path 불러오기
const path = require('path')

// CommonJS 방식의 모듈 내보내기
module.exports = {
  // 엔트리 파일 설정
  entry: './src/index.js',
  // 아웃풋 파일 출력 설정
  output: {
    // 파일 이름
    filename: 'main.js',
    // 경로
    path: path.resolve(__dirname, './dist'),
  },
  // 번들링 모드 설정
  mode: 'development',
}

모듈 번들링

webpack 명령을 터미널에 입력해 모듈 번들링을 수행합니다.

npx webpack

만약 명령 실행 후, 다음과 같은 오류 메시지가 출력된다면? 출력 경로 설정이 잘못된 것입니다.

[webpack-cli] 
# 잘못된 구성 객체입니다.
Invalid configuration object. 
# Webpack API 스키마(Schema)와 일치하지 않는 구성 객체를 사용해 초기화 되었습니다.
Webpack has been initialized using a configuration object that does not match the API schema.
   # 구성.출력.경로 설정인 './dist' 공급 값은 절대 경로가 아닙니다! 
 - configuration.output.path: The provided value "./dist" is not an absolute path!
      # 출력 디렉토리 설정은 반드시 **절대 경로**로 처리해야 합니다.
   -> The output directory as **absolute path** (required).

이 문제는 출력 경로 설정을 다음과 같이 절대 값으로 설정하면 손쉽게 해결할 수 있습니다.

path: path.resolve(__dirname, './dist'),

NPM 스크립트

프로젝트 구성 파일의 scripts 항목에 bundle 명령을 추가 등록한 다음 값으로 webpack 명령을 추가합니다.

"scripts": {
  "bundle": "webpack"
}

그러면 터미널에서 NPM 명령 bundle로 Webpack 모듈 번들링을 수행할 수 있습니다.

npm run bundle

모드 별, 구성 파일

구성할 내용이 많아지고, 모드에 따라 조건 처리해야 할 경우 구성 파일은 상당히 복잡해집니다. 이런 경우 개발용, 배포용 구성 파일을 각각 만들어 효율적으로 관리할 수도 있습니다.

.
├── config/
   ├── webpack.dev.js  # 개발용 Webpack 구성 파일
   └── webpack.prod.js # 배포용 Webpack 구성 파일
├── src/
├── package-lock.json
└── package.json

참고

Last updated