해시를 포함한 스크립트 번들 및 Webpack의 레이아웃
일반적으로 프로젝트를 빌드할 때 번들 이름에 해시가 포함되기를 원합니다. 브라우저의 파일 캐싱 문제를 해결하기 위해 이것이 필요합니다.
따라서 Webpack이 해시를 포함한 이름의 번들을 자동으로 연결해 주는 것이 편리합니다. 확인해 봅시다. 다음과 같은 설정이 있다고 가정합니다:
export default {
context: path.resolve( 'src'),
entry: {
test1: './test1.js',
test2: './test2.js'
},
output: {
filename: '[name].[contenthash].js',
path: path.resolve('dist'),
},
plugins: [
new HtmlWebpackPlugin(),
],
};
빌드 후, 레이아웃 파일에는 해시가 포함된 우리의 번들이 연결될 것입니다:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Webpack App</title>
<script defer src="test1.4173b379c6d6ff439604.js"></script>
<script defer src="test2.72be8754d7c4cb0ece00.js"></script>
</head>
<body>
</body>
</html>
또한 프로젝트 파일을 변경하고 재빌드할 때 Webpack은 자동으로 해시를 변경하고 레이아웃 파일에 수정 사항을 반영합니다. 프로젝트 파일이 변경되지 않았다면 해시도 변경되지 않습니다.
세 개의 진입점을 만드세요. 해시를 포함한 이름의 별도 번들로 빌드되도록 하세요.
프로젝트를 빌드하세요. 레이아웃 파일에 모든 번들이 연결되었는지 확인하세요.
진입점 중 하나의 소스 파일 텍스트를 변경하세요. 빌드를 실행하세요. 해당 진입점 번들의 해시는 변경되고 다른 번들의 해시는 변경되지 않는지 확인하세요.