>웹 프론트엔드 >JS 튜토리얼 >webpack 패키지 파일의 크기가 너무 큰 문제를 해결하는 방법

webpack 패키지 파일의 크기가 너무 큰 문제를 해결하는 방법

php中世界最好的语言
php中世界最好的语言원래의
2018-04-28 16:12:021542검색

이번에는 너무 큰 웹팩 패키지 파일 문제를 해결하기 위한 몇 가지 아이디어를 가져오겠습니다. 너무 큰 웹팩 패키지 파일 문제를 해결하기 위한 주의사항은 무엇인가요? 아래에서 실제 사례를 살펴보겠습니다.

최적화 비교:

최적화 전: index.html에는 2M 이상의 크기를 가진 main.js 파일이 포함되어 있습니다.

  최적화 후: index.html에는 main.js, commons.js,charts.js 및 other.js가 도입됩니다. main.js를 균등하게 나누는 목적을 달성하기 위해. 각 파일은 300k 내에서 제어됩니다. (만족하신다면 100k도 문제 없습니다.)

사용된 다양한 라이브러리 및 도구:

vue, webpack, babel, highcharts, echarts, jquery, html2canvas*** ** *여기서는 일부 m 코드를 생략하겠습니다.

문제:

개발환경에서 webpack을 사용해보니 5m 크기의 js 파일이 하나 발견되었습니다.

 vue-cli의 webpack 구성 덕분에 제작 환경이 2m로 줄어들었습니다.

해결책:

다양한 솔루션 검색: require.ensure, require dependency, multiple items, commonsChunkPlugin****여기에 노력을 절약할 수 있는 몇 가지 솔루션이 있습니다

아래 솔루션과 유사한 솔루션이 너무 많지만 없음 그 중 예상된 결과를 얻을 수 있습니다

entry:{ 
 main:'xxx.js',
  chunks:['c1', 'c2'],
  commons:['jquery', 'highcharts', 'echarts','d3', 'xxxxx.js']  
}
plugins:{
new commonsChunkPlugin({
name:'commons',
minChunks:2
})  
}

최적의 솔루션:

entry:{ 
 main:'xxx.js'
}
plugins:{
 new commonsChunkPlugin({
 name:'commons',
 minChunks:function(module){
  // 下边return参考的vue-cli配置
  // any required modules inside node_modules are extracted to vendor
  return (
   module.resource &&
   /\.js$/.test(module.resource) &&
   module.resource.indexOf(
   path.join(dirname, '../node_modules')
   ) === 0
  )
 }
}) ,
// 以下才是关键
new commonsChunkPlugin({
 name:'charts',
 chunks:['commons'] 
 minChunks:function(module){
  return (
   module.resource &&
   /\.js$/.test(module.resource) &&
   module.resource.indexOf(
   path.join(dirname, '../node_modules')
   ) === 0 && ['jquery.js', 'highcharts.js','echarts'].indexOf( module.resource.substr(module.resource.lastIndexOf('/')+1).toLowerCase() ) != -1
  )
 }
}) // 如果愿意,可以再new 一个commonsChunkPlugin
 
}

이 기사의 사례를 읽으신 후 방법을 마스터하셨다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사에 주목하세요!

추천 도서:

JS를 이미지의 흑백 설정으로

vue 선택 구성 요소를 활성화 및 비활성화하는 방법에 대한 자세한 설명

위 내용은 webpack 패키지 파일의 크기가 너무 큰 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.