[webpack] ch1. Webpack은 무엇인가?

Webpack은 무엇인가?

Webpack을 사용하는 이유? 배경?

새로운 형태의 WebTask Manager

Code based Modules 관리

자바스크립트 모듈화 문제란?

Webpack의 철학

Everything is Module

Load only “what” you need and “when” you need

Webpack 설치

  1. Webpack 설치 (4.5부터 cli도 같이 설치해야 함)
    npm i webpack -g
    npm i webpack-cli -g
    
  2. package.json 생성 npm init -y

  3. index.js 와 index.html 작성 ```javascript function component () { var element = document.createElement(‘div’);

    /* lodash is required for the next line to work */ element.innerHTML = _.join([‘Hello’,’webpack’], ‘ ‘);

    return element; }

document.body.appendChild(component());

```html
<html>
  <head>
    <title>webpack 2 demo</title>
    <script src="https://unpkg.com/lodash@4.16.6"></script>
  </head>
  <body>
    <script src="app/index.js"></script>
  </body>
</html>

lodash를 이용하여 Hello Webpack 메시지를 구성하여 HTML에 div를 추가하는 로직

  1. lodash 라이브러리 npm에 추가하기

lodash 라이브러리는 CDN을 통해 가져오고 있는데 직접 구성하려면 npm을 통해 package.json에 추가하면 됨

npm i lodash --save
  1. index.js에 import문 추가 lodash를 직접 참조하려면 import문을 추가해줘야 함. ES6 지원 문법이므로 webpack으로 번들링 작업을 거쳐야 함
    // index.js 소스 수정. +표시 라인 추가
    + import _ from 'lodash';
    
  2. webpack을 통한 bundling
    webpack app/index.js dist/bundle.js
    
  3. index.html 소스 수정 기존의 app/index.js를 참조하던 라인을 dist/bundle.js로 변경
    // index.html 소스 수정. 아래 코드 중 -표시 라인은 삭제하고 +표시 라인은 추가함
    - <script src="https://unpkg.com/lodash@4.16.6"></script>
    - <script src="app/index.js"></script>
    + <script src="dist/bundle.js"></script>
    
  4. webpack의 config 파일 구성하면 일일이 cli명령어를 치지 않아도 됨. (webpack.config.js) ```javascript // webpack command will pick up this config setup by default var path = require(‘path’);

module.exports = { entry: ‘./app/index.js’, output: { filename: ‘bundle.js’, path: path.resolve(__dirname, ‘dist’) } }; ```