해시를 포함한 스크립트 번들 및 Webpack의 레이아웃

일반적으로 프로젝트를 빌드할 때 번들 이름에 해시가 포함되기를 원합니다. 브라우저의 파일 캐싱 문제를 해결하기 위해 이것이 필요합니다.

따라서 Webpack이 해시를 포함한 이름의 번들을 자동으로 연결해 주는 것이 편리합니다. 확인해 봅시다. 다음과 같은 설정이 있다고 가정합니다:

webpack.config.jsexport default {
  context: path.resolve( 'src'),
  entry: {
    test1: './test1.js',
    test2: './test2.js'
  },
  output: {
    filename: '[name].[contenthash].js',
    path: path.resolve('dist'),
  },
  plugins: [
    new HtmlWebpackPlugin(),
  ],
};

빌드 후, 레이아웃 파일에는 해시가 포함된 우리의 번들이 연결될 것입니다:

dist/index.html<!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은 자동으로 해시를 변경하고 레이아웃 파일에 수정 사항을 반영합니다. 프로젝트 파일이 변경되지 않았다면 해시도 변경되지 않습니다.

Задание 1

세 개의 진입점을 만드세요. 해시를 포함한 이름의 별도 번들로 빌드되도록 하세요.

Задание 2

프로젝트를 빌드하세요. 레이아웃 파일에 모든 번들이 연결되었는지 확인하세요.

Задание 3

진입점 중 하나의 소스 파일 텍스트를 변경하세요. 빌드를 실행하세요. 해당 진입점 번들의 해시는 변경되고 다른 번들의 해시는 변경되지 않는지 확인하세요.