inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

프론트엔드 개발환경의 이해와 실습 (webpack, babel, eslint..)

file-loader를 이용할 때 png 파일이 깨지는 현상 .

409

jxl05

작성한 질문수 3

3

강의의 버전과는 다르게, 최신버전의 webpack v5.70.0 을 사용하고 있습니다. 

강의 내용을 따라 하다보면 file-loader를 이용해서, bg.png와 times-circle.png를 dist파일로 옮겨놔야 하는데 이 때, jpg는 정상적으로 파일이 옮겨지는 반면에 png파일은 작동하지 않습니다. 이와 관련해서 찾아보니, v5 버전 이후 [file-loader, url-loader, raw-loader]는 webpack의 기본 모듈로 채택되면서 더 이상 v6버전의 webpack과 호환이 되지 않는다고 합니다. 그러니, [file-loader,url-loader]를 설치하지 마시고 이 링크 `https://webpack.js.org/guides/asset-modules` 를 참고 하시어 사용 방법을 확인해보시는게 좋은 것 같습니다. 

 

아래는 url-loader를 현 강의의 예제와 동일하게 url-loader를 사용하는 방법입니다. 1-webpack/2-loader 브런치 실습 예제에서 사용 하실 수 있습니다. 2-loader의 times-circle.png 파일은 7kb 정도이니, 아래의 코드를 이용하면 times-circle.png 파일은 데이터 스트링으로 url() 함수의 인자로 전달 된 것을 볼 수 있을 겁니다. 

const path = require('path');

module.exports = {
  mode: 'development',
  entry: {
    main: './src/app.js'
  },
  output: {
    filename: '[name].js',
    path: path.resolve('./dist'),
    assetModuleFilename: '[hash][ext][query]' //file-loader output
  },
  module: {
    rules: [
      {
        test: /\.css$/,
        use: [
          'style-loader',
          'css-loader'
        ]
      },
      { //url-loader 사용시 
        test: /\.(jpe?g|gif|png)$/i,
        type: 'asset',
        parser: {
          dataUrlCondition: {
            maxSize: 8 * 1024 // 8kb
          }
        }
      },
      // { //file-loader 만 사용시 
      //   test: /\.(jpe?g|gif|png)$/i,
      //   type: 'asset/resource',
      // }
    ]
  }
}

file-loader png 웹팩 파일로더 nodejs babel eslint

답변 0

지금 시점에서 해당 강의를 듣는 것에 대하여

1

132

3

2025년 기준 번들러 트렌드와 선택 기준이 궁금합니다 (Webpack, Vite, tsup 등)

1

251

1

에러 해결 공유드립니다

1

235

2

webpack 4 버전과 호환되는 플러그인 버전 공유드립니다

1

252

2

eslint

0

397

3

도와주세요!

0

172

2

[수강 중 트러블슈팅 공유] webpack, webpack-cli 버전

1

155

1

질문 an error occurred while loading the image

1

488

1

webpack에서 babel-loader 사용할때 질문

1

160

1

자주 사용하는 플러그인 에서 질문이 있습니다.

1

174

1

eslint no-extra-semi 관련 질문

1

152

1

webpack5 에서 open index.html하는법 + 질문

1

177

1

TypeError: ((process.env.NODE_ENV === "production") && [MiniCssExtractPlugin]) is not iterable

2

313

1

혹시 웹팩 5 내용으로 강의 업데이트는 안되는건가요?

1

375

1

에러없이 png안뜨시는 분들

1

284

1

Error: Cannot find module 'node:crypto'

1

471

1

DefinePlugin 관련; env와 관련하여, (21.06.22 16:15, aloha_jh) 답변포함

1

419

1

깃허브 확인 문의

0

583

1

폴더를 prettier로 돌렸을 때 나오는 에러 구문에 대한 질문

0

414

1

해쉬값과 캐쉬 갱신

1

468

1

Hash 에러 발생

1

2677

2

webpack.config.js에서의 CommonJS방식에 대한 질문

0

845

3

웹팩 버전

0

530

1

웹팩-cli 버전을 명시하지 않으면 왜 에러가 날까요?

0

491

1