Modules


:raising_hand: 개인적인 Webpack 학습 및 공부 내용을 기록하기 위한 포스트입니다.


1. import & export 기본 문법


  • export : 특정 파일에서 쓸 변수, 함수 등을 내보내는 문법 익스포트한 대상은 다른 파일에서 import 를 통해 사용 가능
export 변수, 함수
  • import : export 된 변수 혹은 함수를 사용할 경우
import { export  변수, 함수  } from '파일 경로';
1-1. exportExam.js

export function sum(a, b) {
  return a + b;
}
1-2. importExam.js

import { sum } from "./exportExam";
console.log("10 + 20 = ", sum(10, 20));

import 하여 사용할때 상대경로를 잘 맞게 썼는지 항상 주의하자

2. Webpack 으로 돌려보기


image

앞에서 기록한것과 같이 우리가 웹팩을 빌드 할 경우 package.json 에 scripts 에 선언이 되어 있어야 한다.

npm run build

를 쳤을때 동작하는 건 webpack 이고 우리가 정의한 webpack.config.js 에서 구성한대로 build 가 실행된다.

2-1. webpack.config.js

var path = require("path");

module.exports = {
  mode: "production",
  // production 의 경우 난독화 되어 나옴
  // mode: 'none', 으로 진행할 경우 bundle 소스를 확인 가능
  entry: "./js/app.js",
  output: {
    path: path.resolve(__dirname, "build"),
    filename: "main.bundle.js",
  },
  module: {
    rules: [
      {
        test: /\.m?js$/,
        exclude: /(node_modules|bower_components)/,
        use: {
          loader: "babel-loader",
          options: {
            presets: ["@babel/preset-env"],
          },
        },
      },
    ],
  },
  stats: {
    colors: true,
  },
  devtool: "source-map",
  // source-map 을 통해 build 한 결과물(난독화)과 빌드 전 결과물을 비교할 수 있게 해준다.
};

build 를 진행하게 되면

image

하지만, 우리가 console 을 찍었을때 해당 js 페이지가 난독화 전 결과물을 보고 싶은 경우가 있다.

예를 들어

image

클릭 시 실제 app.js 의 함수를 보고 싶을때가 있는데 이럴때는 webpack config 에 devtool 을 추가하여 해결할 수 있다.

devtool: "sourceMap";

image

image