Webpack4 splitChunks 구성 이산 로직 코드

블로그 때 작성하는 방법을 알고하지 않습니다, 갑자기 블로그를 작성되지 않은 방법, 년 과거 반을 느끼고, 임시 보관함에 완료되지 않았습니다. 마침 쓰기의 시작과 끝

     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 : 사실 
 }

 

추천

출처www.cnblogs.com/legu/p/10491315.html