개발Story
article thumbnail

front-end를 개발하는데 있어 webapck이란 단어를 많이 들어봤을 것이다.

 

웹팩이란 웹팩은 현대 자바스크립트 어플리케이션을 위한 정적 모듈 번들러 입니다.

 

즉 웹팩은 js, css, file, html 들을 하나의 모듈로 묶어 동작하게 해주는 모듈 번들러이다.

 

사용하는 이유는

1. 파일 단위의 자바스크립트 모듈 관리의 필요성
2. 웹 개발 작업 자동화 도구 (Web Task Manager)
3. 웹 애플리케이션의 빠른 로딩 속도와 높은 성능

 

아래와 같은데 3번인 어플레케이션의 성능을 향상시키는데 많은 도움을 준다고 한다.

(여러개의 js파일들을 하나로 읽으니 성능이 개선될 수 밖에 없을것이다.)

 

웹팩의 환경을 잡아 보기 위해서는 일단 vscode, node.js가 전제로 설치되어있어야 한다.

 

cmd에

#mkdir webpack-sample

#cd webpack-sample

#npm init -y

#code .

 

아래와 같이 실행하면 프로젝트에 packge.json파일이 있을 것이다.

vscode 터미널에

#npm i -D webpack webpack-cli 를 입력한다.

packge.json파일에서 라이브러리 설치를 확인한다.

package.json 파일에서 scrpts를 webpack으로 아래와같이 하나 만든다.

웹팩의 기본 설정 파일은 최상단의 webpack.config.js파일이다.

 

최상단에 webpack.config.js을 만들도록 한다.

기본 설정은 이러하다.

const path = require('path');

module.exports = {
    mode: "development", // "production" | "development" | "none" 으로 나뉨.
    entry : "", // 입구가 되는 js파일을 의미.
    output : { // entry에서 설정한 js파일을 웹팩에서 번들링한 결과 js파일.
        path : "", // 결과물을 저장할 경로,
        filename : '' // 결과물 이름
    },
    module: {
        rules: [
            // 웹팩으로 변환 할 여러 규칙들 설정
        ],
      },
}

자세한 설정은 https://webpack.js.org/

 

webpack

webpack is a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser, yet it is also capable of transforming, bundling, or packaging just about any resource or asset.

webpack.js.org

공식 사이트를 DOCUMENTATION 메뉴-> configuration을 참고하면 된다.

 

 

프로젝트에 src 폴더를 만든 후 

app.js, math.js를 만든다.

app.js

import {sum} from './math.js'

window.addEventListener('DOMContentLoaded',()=>{
    const el = document.querySelector("#app");
    el.innerHTML=`<h1> 1+2 = ${sum(1,2)}        <h1/>
    <img src="${webpackImage}" alt ="webpack" />
    ` 
})

math.js

export function sum(a,b){
    return a+b;
}

index.html을 생성한다.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app"></div>
</body>
</html>

 

이제 다시 webpack.config.js로 돌아와

const path = require('path');
module.exports = {
    mode: "development", // 우선 여기서는 개발자모드를 넣어주도록 하자.
    entry : {main : "./src/app.js"}, // 입구가 되는 js파일을 의미.
    output : { 
        path : path.resolve("./dist"), // 결과물을 저장할 경로 여기서는 절대경로를 넣어줘야함.
        filename : '[name].js' // 결과물 이름
    },
}

config를 설정해준다.

 

터미널에

#npm run build를 실행하면

 

main.js가 생성된다 해당 js는 app.js + math.js가 번들링된 모듈파일이다.

 

index.html에다 main.js를 연결 후 html을 실행하면

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
	<script src='../dist/main.js'></script>
    <div id="app"></div>
</body>
</html>

함수가 적용된 html이 생성된다.

 

참고 : https://www.youtube.com/watch?v=rbmUFHZt3sg

profile

개발Story

@슬래기

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!