블로그 때 작성하는 방법을 알고하지 않습니다, 갑자기 블로그를 작성되지 않은 방법, 년 과거 반을 느끼고, 임시 보관함에 완료되지 않았습니다. 마침 쓰기의 시작과 끝
1. 코드 업그레이드
원본 항목 코드 분리 [이름] 생성 .router.jsx JS 파일 이름에 따른 플러그 번들 로더 다음 router.jsx 배열 구성에 의해 분리 된 부호에 기초한다.
{ 시험 : /\.router\.jsx/ , 로더 [ '일괄 로더 = [1] 정규 표현식 = ([^ \\\\\\ / *) \\ 라우터 \\ jsx 지연 및 이름?..' , '바벨 - 로더' , ], 제외 : / node_modules | 자산 / }
어셈블리 코드 분리 단위로, 업그레이드 프로그램 반응 -로드 가능한 + 가져 오기 모드를 사용하여, 함께 포장 할 필요가 webpackChunkName 같은 줄 이름에 정렬합니다.
성분 :로드 가능한 ({ 로더 () => 오기 ( / * webpackChunkName "이름" * / 'MODULES / 컴포넌트 / index.jsx' ), 로드 })
2. 실제 프로젝트를 함께 포장하는 경우는, webpack4에 큰 파일을 열 동시 브라우저의 수를 이용해야한다, 그래서 일부 라이브러리 패키지는 다음 파일이 너무 큰 원인이됩니다, 상대적으로 큰 것 몇 가지 문제가 위의 구성에 따라 또는이있을 것 주요 사용은 splitChunks 구성, 다음 프로젝트 구성되어있다
splitChunks { maxAsyncRequests : 6 , cacheGroups { 중괄호 { 이름 : '브레이스' , 청크 : '모든' , 우선 : 10 , 시험 : getTestFn ( 함수 (명) { CONST 등록 = 새로운 정규식 (/ 보조기 / ) 만약 ( name.indexOf ( '/ 부품 / ACE /')! == -1 || name.indexOf ( '/ 컴포넌트 / SQL 포맷터 /')! == -1 || name.indexOf ( ! / node_modules / 반응-ACE / ') == -1 ) { 반환 참 ; } 반환 reg.test (이름); }) }, echarts : { 이름 : 'echarts' , 덩어리 : '모든' , 우선 순위 : 10 , 테스트 : / echarts | zrender / }, libs와 : { 이름 : 'libs와' , 덩어리 : '모든' , 우선 순위 : 9 , 시험 : getTestFn ( 기능 (이름) { const를 등록 = 새 정규식 (/ 바벨 - polyfill | \ / 반응 \ / | 반응-DOM | 반응 라우터-DOM을 | mobx | lodash / ); 반환 ;) reg.test (이름 )} } {: 스타일 이름 : '스타일' , 테스트 : /\.(less|css|scss)$/ , 덩어리 : '비동기'을 , minChunks : 1 , reuseExistingChunk : 사실 , 시행 : 사실 , 우선 순위 : 8 }, 비동기 : { 이름 : '비동기' , 덩어리 : '비동기' , minChunks : 2 , reuseExistingChunk : 사실 , 우선 순위 : 7 }, 기본 : 거짓 , 공급 업체 : 거짓을 } }
일부 필드는 아래 (오류가있을 수 있습니다, 저를 수정하시기 바랍니다) 주목해야한다 내부
chunks:
"초기"초기화, 나는 그것이 구성의 항목 생각
"비동기"비동기, 패키지 분할의 비동기 수입 상응하는 내용
"모든"모든
우선 순위 : 우선 순위는 더 큰 값, 제 수행
minChunks은 : 참조 횟수 포장이 값보다 큰
포장 최적화 아이디어,
가. 이러한 코드 편집기 에이스 비주얼 아이콘 echarts 여기서 I가 함수에 의해 설정뿐만 아니라, 관련된 일부 편집기로 포장 시험과 별도로 포장 제 큰 라이브러리
나. 수는 기본 라이브러리 패키지를 변경, 업그레이드 가능성이 없습니다, libs와 구성
다. 몇 가지 일반적인 코드 패키지. 비동기 구성. 참고 minChunks : async.js로 포장됩니다 두 개 이상의 로컬 참조가있는 경우 (2)는,이 구성은,이 구성 minChunks이 실제 장면을보고 결국 몇 가지를 작성하여 파일의 나머지 위의 전체 패키지입니다
D.vendors 경우 기본적 기본 구성이 업체는 node_modules와 함께 패키지되어, 다음은 관련 구성입니다이며, 기본값은 자신의 매우 상세한, 당신은 스왑을 사용하지 않아야 코드 패키지를 반복 구성하는 것입니다
공급 업체 : { 테스트 : / [\\ /] node_modules [\\ /] / , 우선 순위 : -10 }, 기본 : { minChunks : 2 , 우선 순위 : -20 , reuseExistingChunk : 사실 }