logo

JEONGGON

    블로그
github
mode
목 차
down-arrow

Webpack import

2024.03.19.

post-thumbnail

Import 기능

1. Import

  • React에서 App을 만들 경우, 모듈 및 함수, 패키지, 변수 값들을 간단하게 import를 통해 가져와서 사용하였음
  • 이러한 Import 기능을 사용할 수 있는 이유는 웹팩에 이미 설정이 다 되어있기에 가능함

2. Import 기능 만들기

2-1. import 시도

  • src/randomAddress.js 파일 생성하여 export하고 index.js로 import하기

// src/randomAddress.js

function getRandomAddress() {
  return "서울";
}

export default getRandomAddress;
// src/index.js

import getRandomAddress from "./randomAddress";

console.log(getRandomAddress());
  • 아직 설정이 안 되어있기에 SyntaxError: Cannot use import statement... 발생함

2-2. Webpack 설치

- npm 초기화

  • package.json 파일 생성
$ npm init -y

- Webpack 패키지 설치

  • webpackwebpack-cli 설치
  • -D 플래그 : devDependencies로 설치하게 되어 개발환경에서만 작동함
$ npm i -D webpack webpack-cli
  • package.json에서 의존성 패키지 설치 확인
//package.json

{
  "devDependencies": {
    "webpack": "^5.90.3",
    "webpack-cli": "^5.1.4"
  }
}

- scripts 추가

  • build를 위한 스크립트를 추가하기
  • "build": "webpack --mode production" : src 폴더의 파일들을 빌드하여 dist로 넣어주는 스크립트
//package.json

{
  "scripts": {
    "build": "webpack --mode production"
  }
}

- build 스크립트 이용

  • npm run build 명령어 실행
$ npm run build

- 빌드 완료

  • 자동으로 dist 폴더에 main.js 파일이 생성됨
// dist/main.js

(() => {
  "use strict";
  console.log("서울")
})();

- index.html에 main.js 파일 연결

  • 기존의 index.js 파일이 아닌 main.js로 교체
  • 이제 에러 발생하지 않고 콘솔 잘 출력됨
<!--dist/index.html-->

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>Document</title>
</head>
<body>
<h1>Webpack</h1>
<script src="./main.js"></script>
</body>
</html>

- 이미 만들어진 라이브러리 import 해보기

  • nanoid라는 라이브러리 설치해서 사용해보기
$ npm install nanoid --save
//package.json

{
  "dependencies": {
    "nanoid": "^5.0.6"
  }
}
  • nanoid 라이브러리 index.js 파일로 import하기
// index.js

// ...
import { nanoid } from "nanoid";

console.log(nanoid());
  • 다시 npm run build로 빌드하기
// dist/main.js

(() => {
  "use strict";
  console.log(((o = 21) => {
    let e = "", r = crypto.getRandomValues(new Uint8Array(o));
    for (; o--;) e += "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[63 & r[o]];
    return e
  })()), console.log("서울")
})();
  • 콘솔에 nanoid가 생성한 유니크 id가 잘 출력됨을 확인할 수 있음
webpackbundleimportbuild
profile

조정곤

주니어 프론트엔드 개발자

github
linkedin
instagram
email

< 이전글

GraphQL 필터링

다음글 >

Webpack 폴더 및 파일 구조

Webpack 포스트 (13)

down-arrow
Webpack 소개Webpack importWebpack 폴더 및 파일 구조Webpack Babel LoaderWebpack DevtoolWebpack LoaderWebpack PluginWebpack configWebpack gzipWebpack 개발 서버Webpack 캐싱Webpack Bundle AnalyzerWebpack Resource Asset