-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[FE] refactor: svg 파일 최적화 #596
Conversation
Co-authored-by: sooyeon <soosoo22@users.noreply.github.com> Co-authored-by: Fe <chysis@users.noreply.github.com> Co-authored-by: badahertz52 <badahertz52@gmail.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
svgo 를 사용할 때 현재 원본과 압축이 같은 src 경로에 있네요.
압축된 것은 dist로 원본은 src로 두는 것을 어떨까요?
그리고 새로운 svg 추가될 때 해당 svg도 압축이 가능하도록 관련 명령어를 script에 추가했으면 해요. dist에 압축을 두니, prebuild 로 svgo를 싫행하면 좋겠네요
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
고생했어요 :)👍👍
frontend/package.json
Outdated
@@ -24,7 +24,8 @@ | |||
"react-error-boundary": "^4.0.13", | |||
"react-router": "^6.24.1", | |||
"react-router-dom": "^6.24.1", | |||
"recoil": "^0.7.7" | |||
"recoil": "^0.7.7", | |||
"svgo": "^3.3.2" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
svgo를 devDependencies로 설치하지 않은 이유가 있는지 궁금해요.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
해결 완
frontend/webpack.config.js
Outdated
@@ -61,6 +63,7 @@ module.exports = (env, argv) => { | |||
favicon: './src/favicons/favicon.ico', | |||
}), | |||
new CleanWebpackPlugin(), | |||
//new BundleAnalyzerPlugin(), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
추후에 BundleAnalyzerPlugin은 production 모드에서만 쓸 수 있도록 수정하면 좋겠네요!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이미 있는 isProduction 변수를 활용해 new BundleAnalyzerPlugin 이 production 모드에서만 실행되도록 할 수 있겠네요
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
svg 크기가 많이 줄었네요!!!👍👍👍
frontend/package.json
Outdated
@@ -5,7 +5,7 @@ | |||
"license": "MIT", | |||
"scripts": { | |||
"dev": "webpack serve --mode=development --open --hot --progress", | |||
"build": "webpack --mode=production --node-env=production", | |||
"build": "svgo -rf ./src/assets -o ./dist && webpack --mode=production --node-env=production", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
오오!! 추가되었군요!
frontend/package.json
Outdated
@@ -5,7 +5,7 @@ | |||
"license": "MIT", | |||
"scripts": { | |||
"dev": "webpack serve --mode=development --open --hot --progress", | |||
"build": "webpack --mode=production --node-env=production", | |||
"build": "svgo -rf ./src/assets -o ./dist && webpack --mode=production --node-env=production", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
svgo 실행을 prebuild가 아닌 build 명령어로 한 이유가 있을까요?
저라면 작업을 보다 명확하게 분리하기 위해서 빌드 작업과 빌드 이전의 작업 명령어를 분리할 것 같아서요.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
svgo 명령어 관련해서 질문을 남겼어요
build냐 prebuild냐는 관점 차이기도 하고 크리티컬한 문제는 아니며 해야할 작업들이 있기에
approve할게요.
@@ -5,6 +5,7 @@ | |||
"license": "MIT", | |||
"scripts": { | |||
"dev": "webpack serve --mode=development --open --hot --progress", | |||
"prebuild": "svgo -rf ./src/assets -o ./dist ", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🚀 어떤 기능을 구현했나요 ?
반응형 사이징을 적용해 현재 디바이스에 맞는 크기의 이미지를 불러올 수 있게 한다 <- 실패🔥 어떻게 해결했나요 ?
BundleAnalyzerPlugin
도 설치했습니다. 이번 PR과 직접적인 연관이 있는 패키지는 아니지만 금방 다시 사용할 것 같아 삭제하지 않았습니다📝 어떤 부분에 집중해서 리뷰해야 할까요?
📚 참고 자료, 할 말
마지막까지 함께 디버깅해준 리뷰미 최고!
참고용으로 아까 반응형 사이징 시도했다가 실패/부분 성공했던 코드 올립니당
img
태그만 있어도srcSet
,sizes
속성을 사용할 수 있다고 합니다.위 코드보다 아래 코드가 나은 이유는 순서 문제인지, max-min 문제인지, 값을 하드코딩해서인지는 잘 모르겠네요 �