일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- HTML5
- 코딩테스트
- 백준구현문제
- 리액트
- 백준알고리즘
- dp알고리즘
- 다이나믹프로그래밍
- 자바스크립트
- 백준nodejs
- 몽고DB
- css기초
- 알고리즘
- 프로그래머스코테
- 백준골드
- 백준구현
- 안드로이드 스튜디오
- 프로그래머스JS
- 포이마웹
- 백준js
- js코테
- 프로그래머스
- 리액트댓글기능
- JS프로그래머스
- HTML
- 익스프레스
- 리액트커뮤니티
- 백준
- 코테
- CSS
- JS
- Today
- Total
개발새발 로그
webpack 이미지 올리는 법 file-loader, copy-webpack-plugin 본문
webpack을 이용해서 겨우겨우 HTML,CSS,JS를 구축했더니
이제는 이미지가 말썽이다.
나는 index.html에 <img>태그를 써서 src 경로에 이미지 경로를 넣었다.
근데 webpack-server을 사용해서 서버를 돌렸더니 이미지를 못찾는다는 것이다..
그래서 이게 뭘까 했다.
일단 문제는 내가 webpack-server을 돌릴 때 public폴더
즉 빌드된 폴더를 서버에 실행시키고있다.
그래서 public폴더에는
내가 개발 중인 src폴더에 있는 images폴더와 이미지 파일들이 없으니까 오류가 생기는 것이다.
문제는 바로 찾았다
그럼 어떻게 빌드 폴더에 이미지를 올릴까?
해결 영상
https://www.youtube.com/watch?v=FWyDqz3KzzI
바로 file-loader을 이용해야했다.
먼저 file-loader를 설치하자
https://v4.webpack.js.org/loaders/file-loader/
npm install file-loader --save-dev
그리고 webpack.config.json에 아래 module rules를 추가해주자
module: {
rules: [
...
{
test: /\.(png|jpe?g|gif)$/i,
loader: "file-loader",
options: {
name: "images/[name].[ext]", //[폴더명][파일명][ext]
},
},
...
],
},
이를 통해서.css-loader 처럼 이미지 파일도 loader가 필요하다.
그리고 css-loader을 했던 것 처럼 아래와 같이 import 해줘야한다.
근데 나는 생각했다.
이미지 하나할 때마다 이렇게 해야한다고...?
너무 불필요했다.
분명 다른 방법이 있을텐데...
그래서 위 유튜브 영상을 찾게 되었다.
영상에서는 file-loader와 image-webpack-plugin 그리고 copy-webpack-plugin을 사용했다.
근데 내가 사용하면서 느낀 것은 file-loader는 필요없는거 아닌가? 생각했다.
나는 copy-webpack-plugin만 사용해서 문제를 해결했다.
근데 이게 해결 방법이 맞는지는 모른다.
내 해결 방법은 아래와 같다.
1. copy-webpack-plugin 설치
https://webpack.kr/plugins/copy-webpack-plugin/#root
npm install copy-webpack-plugin --save-dev
2. 아래 코드 추가
const CopyPlugin = require("copy-webpack-plugin");
module.exports = {
plugins: [
new CopyPlugin({
patterns: [
from: "./src/images",
to: "./images/",
],
}),
],
};
이것만 해서 build 폴더에 images 폴더안 파일들을 모두 넣을 수 있었다.
그리고 file-loader는 찾아보니까 deprecated되었더라..
v4에서만 사용하고 v5에서는 사용하지 못한다고 되어있었다.
추가적으로
image-webpack-plugin
해당 플러그인도 사용하면 좋을 것 같았다.
이미지가 너무 크면 빌드 폴더가 너무 커지니까 그런 것들을 방지해줄 수 있다고 한다.
https://yamoo9.gitbook.io/webpack/webpack/webpack-plugins/minimize-images
'TIL' 카테고리의 다른 글
Vercel SPA Fallback (0) | 2023.12.02 |
---|---|
[2023-11-21] MIL - 프론트엔드 데브코스 5기 한 달 회고 2편 (3) | 2023.11.21 |
webpack 사용방법(2) - 간단 설명 (0) | 2023.11.09 |
webpack 사용방법(1) (0) | 2023.11.09 |
[TIL] 한 달간 코드리뷰를 하면서 (0) | 2023.11.08 |