Webpack 호환성
브라우저 호환성
Webpack은 ES5 호환이 가능한 모든 브라우저를 지원합니다 (IE8 이하 미지원). Webpack은 Promise를 사용해 모듈을 불러 옵니다(import()
, require.ensure()
). Promise를 지원하지 않는 브라우저(IE 미지원)에서 사용하려면 모듈을 로드하는 코드 작성 전에 폴리필(Polyfill)을 로드해야 합니다.
npm i core-js regenerator-runtime unfetch
Babel v7.4.0부터 @babel/polyfill 패키지는 사용되지 않습니다. 대신 ECMAScript 기능을 대체하는 core-js/stable, 제너레이터 함수 기능을 대체하는 regenerator-runtime/runtime을 사용합니다.
polyfills.bundle.js
파일이 필요한 브라우저 환경에서 조건부 로드하기 위해 폴리필이 필요한 환경인지 검사하는 간단한 테스트를 수행합니다. 필요한 환경 임이 감지되면 동적으로 폴리필 파일을 불러와 사용하게 됩니다.
<!-- 오래된 브라우저 감지 스크립트 → 폴리필 조건부 로드 -->
<script src="./dist/detect.polyfills.js"></script>
<!-- 메인 모듈 -->
<script src="./dist/main.js"></script>
빌드 명령을 실행하여 출력한 결과는 다음과 같습니다.

브라우저 캐싱
브라우저 캐싱은 애플리케이션 속도를 향상시켜 유용합니다. 하지만 개발 중에는 브라우저에 저장된 캐시로 인해 변경사항이 바로 반영되지 않아, 개발자에게 혼란을 야기할 수 있습니다. 그러므로 파일 이름에 임의의 md4-hash 코드를 추가해 개발 중 빌드 될 때 마다 매번 새로운 파일 이름이 설정되도록 하여 "개발 중 브라우저 캐싱 문제"를 해결할 수 있습니다.
module.exports = {
output: {
path: path.resolve(__dirname, './dist'),
// 빌드(컴파일, 번들링 등) 결과 파일 브라우저 캐싱(Cachinig)
filename: 'main.[contenthash].js'
}
}
md4 캐시 코드가 추가된 파일 이름 결과는 다음과 같습니다.

플랫폼 호환성
Webpack v5는 Node.js 버전 10.13.0
이상에서 실행됩니다.
참고
Last updated
Was this helpful?