티스토리 뷰

WEB/etc

[WEB] 웹팩이란? (WEBPACK)

퉁이리 2022. 2. 10. 18:10
반응형

WEBPACK

웹팩은 모듈 번들러다.

 


 

모듈(module)이란?

모듈은 특정 기능을 가지는 작은 코드 단위를 말한다.

 

const sum = (a,b) => a+b;

 

번들러(bundler)란?

기술의 발전으로 복잡한 코드도 많이 개발되어 자연스럽게 코드 줄은 기하급수적으로 늘기 시작했다.

코드가 길어짐에 따라 여러 문제가 발생하였다.

 

  • 코드 양이 많아 로딩이 느려짐
  • 중복되는 코드 이름 (에러 발생)
  • 스코프 문제

 

번들러는 여러 개의 파일을 하나로 묶어주는 역할을 수행함으로써 위 문제들을 해결해준다.

여러 개의 번들러가 존재하고 그중 하나가 웹팩(webpack)이다.

 

다시 한번 정리하자면 웹팩은 모듈 번들러다.

 

 

🤨 모듈 번들러인 웹팩은 장점만 존재할까?

웹팩(webpack)의 단점으로는 러닝 커브가 높다.

또한 webpack.config.js 파일을 설정하는 과정이 많이 복잡하여 초기 환성 설정도 어렵다.

 

 


 

웹팩의 구성요소

  • Entry
  • Output
  • Loaders
  • Plugins
  • + (mode)

 

1️⃣ Entry

Entry번들링 하고 싶은 모듈들을 묶기 위한 파일의 시작 위치를 나타낸다.

 

module.exports = {
  entry: './path/to/my/entry/file.js', //파일 경로
};

 

 

2️⃣ Output

Output번들링이 완료 후의 결과물 설정(경로, 파일 이름 등)을 도와준다. 

 

const path = require('path');

module.exports = {
  entry: './path/to/my/entry/file.js',
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'my-first-webpack.bundle.js',
  },
};

 

 

3️⃣ Loaders

Loaders자바스크립트만 알고 있는 웹팩을 위해, 다른 확장자들도 변환시켜주는 기능을 한다.

 

const path = require('path');

module.exports = {
  output: {
    filename: 'my-first-webpack.bundle.js',
  },
  module: {
    rules: [{ test: /\.txt$/, use: 'raw-loader' }],
  },
};

 

 

4️⃣ Plugins

Plugins번들링이 완료된 결과물에 추가적인 기능을 적용해주는 기능을 한다.

 

const HtmlWebpackPlugin = require('html-webpack-plugin'); // npm을 통해 설치
const webpack = require('webpack'); // 내장 plugin에 접근하는 데 사용

module.exports = {
  module: {
    rules: [{ test: /\.txt$/, use: 'raw-loader' }],
  },
  plugins: [new HtmlWebpackPlugin({ template: './src/index.html' })],
};

 

 

mode란?

모드는 웹팩 4에서 추가된 기능으로 번들링 설정 템플릿이다.

 

  • development : 개발용
  • production : 배포용
  • none : none

 

 

참고사이트

웹팩 공식사이트(en)

 

 

 

좋아요는 로그인하지 않아도 누를 수 있습니다!

728x90
반응형

'WEB > etc' 카테고리의 다른 글

[WEB] FLUX 패턴  (1) 2022.02.28
[WEB] CI/CD란?  (2) 2022.02.14
[WEB] BABEL이란?  (1) 2022.02.08
[WEB] 크로스 브라우징 (Cross Browsing)  (1) 2022.02.07
[WEB] XML이란?  (2) 2022.01.10
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함