일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 무한 스크롤
- CI/CD
- 인터섹션
- 태그된 유니온
- async/await
- 결정 알고리즘
- 공변성
- map
- 반공변성
- useAppDispatch
- autosize
- webpack
- 타입 좁히기
- CORS
- RTK Query
- Cypress
- Jest
- React
- 이분 검색
- dfs
- 리터럴 타입
- 투포인터
- SSR
- app router
- tailwind
- ESlint
- Promise
- recoil
- 호이스팅
- TS
Archives
- Today
- Total
짧은코딩
웹팩의 4가지 주요 속성(entry, output) 본문
반응형
Entry
module.exports = {
entry: "./index.js",
};
entry는 웹팩에서 웹 자원을 변환시키기 위한 최초의 js 파일 경로이다.
디펜던시 그래프(Dependency Graph)
빌드를 하면 이 사진처럼 모듈 간의 의존 관계가 생기는 구조인 디펜던시 그래프가 생긴다.
Entry 포인트가 2개인 경우
entry: {
login: './src/LoginView.js',
main: './src/MainView.js'
}
entry 포인트는 2개가 될 수 있다. entry 포인트 2개 이상 쓰는 경우는 싱글 페이지 애플리케이션(SPA)보다 서버에서 정보를 내려주는 형태의 멀티 페이지 애플리케이션이 적합하다.
Output
module.exports = {
output: {
filename: "bundle.js",
path: path.resolve(__dirname, "dist"),
}
};
output 속성은 웹팩을 돌리고 난 후 결과물을 저장한 파일을 의미한다.
filename은 필수로 입력해야 하고 path는 선택 사항이다.
Output 파일 이름 옵션
앞에서 살펴본 filename 속성에 여러 가지 옵션을 넣을 수 있다.
1.결과 파일 이름에 entry 속성을 포함하는 옵션
module.exports = {
output: {
filename: '[name].bundle.js'
}
};
2. 결과 파일 이름에 웹팩 내부적으로 사용하는 모듈 ID를 포함하는 옵션
module.exports = {
output: {
filename: '[id].bundle.js'
}
};
3. 매 빌드시 마다 고유 해시 값을 붙이는 옵션
module.exports = {
output: {
filename: '[name].[hash].bundle.js'
}
};
4. 웹팩의 각 모듈 내용을 기준으로 생생된 해시 값을 붙이는 옵션
module.exports = {
output: {
filename: '[chunkhash].bundle.js'
}
};
이렇게 파일 이름에 옵션을 넣어주면 빌드를 할 때마다 고유 값을 붙여준다. 원래는 브라우저가 파일들을 캐싱하고 있어서 내용이 바뀐 파일이 bundle.js로 변환되어도 새로고침을 해주지 않아 사용자가 새로고침을 해야 했다. 하지만 해시를 이용하면 내용이 변경되었을 때 자동으로 새로고침이 된다.
반응형
'인프런, 유데미 > webpack' 카테고리의 다른 글
웹팩 데브 서버(webpack dev server) (1) | 2023.02.05 |
---|---|
웹팩의 4가지 주요 속성(loader, plugin) (0) | 2023.01.21 |
webpack 기본 사용법 (0) | 2022.12.26 |
webpack과 만들어진 이유 (0) | 2022.12.26 |
dependencies와 devDependencies 차이점과 이유 (0) | 2022.12.23 |
Comments