File 로더

File Loader 구성

file-loaderarrow-up-right 패키지를 프로젝트에 설치한 후, Webpack 구성 파일의 모듈 규칙 안에 로더를 설정합니다.

npm i file-loader -D

이미지 모듈 작성

섬 근처 수역에 서있는 사람arrow-up-right 이미지 파일을 다운로드 받은 후, 에셋 디렉토리(src/assets) 안으로 이동시킵니다. 그런 다음 예제 디렉토리(src/example) 안에 imageIsland.js 파일을 생성한 후 DOM.createElement 모듈을 사용해 이미지를 동적으로 생성하는 코드를 작성합니다.

그리고 엔트리 파일(src/index.js)에 이미지 파일 모듈을 불러와 DOM.render 모듈을 사용해 UI에 렌더링 합니다.

import islandImage from '../assets/landscape-island.png'
import { createElement } from '../modules/DOM'

/* -------------------------------------------------------------------------- */

export default function imageIsland() {
  return createElement('img', {
    src: islandImage,
    alt: '섬 근처 수역에 서있는 사람',
  })
}

모듈 번들링

bundle NPM 명령을 사용해 모듈을 번들링 하면 JS 파일 뿐만 아니라, 이미지 파일까지 모두 번들링 됩니다.

번들링 된 결과물은 배포 디렉토리(dist) 안에 생성됩니다.

circle-info

이미지 파일 "이름", "해시", "확장자" 값을 출력하려면 use 옵션을 다음과 같이 변경합니다.

Public 경로 설정

번들링 된 결과로 처리된 앱을 웹 브라우저에서 확인하면 동적으로 생성된 이미지 모듈 코드가 다음과 같습니다. <img/> 요소의 src 속성을 보면 웹 주소(URI)를 확인할 수 있습니다. 전체 도메인arrow-up-right 경로가 사용되었네요.

Webpack 구성 파일에 publicPath 설정을 추가해 공용 디렉토리(모든 에셋의 기본 위치)를 설정해봅니다.

설정 후 다시 모듈 번들링 하면, 이미지 경로가 공용 디렉토리에 상대적인 위치로 설정된 것을 확인할 수 있습니다.

circle-info

공용 디렉토리 위치를 호스팅arrow-up-right URL로 입력할 수도 있습니다.

참고

Last updated