나는 Karma 테스트 러너에 대해 느린 "부팅"시간을 경험했으며 실행을 프로파일 링 한 후, 가장 큰 속도 저하가 소스 맵 생성으로 인해 발생한다는 것을 깨달았습니다.karma-webpack에서 공급 업체 코드의 소스 맵을 작성하지 못하게하는 방법은 무엇입니까?
좀 더 구체적으로 말하자면, 전처리기로 karma-webpack
과 webpack을 사용하고 있기 때문에, 테스트 파일이 karma에 의해로드 될 때마다, webpack에 피드 맵을 생성합니다.
내 앱과 공급 업체 코드를 분할/청크하지 않았기 때문에 각 테스트 파일은 동일한 공급 업체 소스 맵 (인라인 됨)을 얻고있었습니다.
node_modules/
개의 파일에 대한 소스 매핑을 단순히 방지함으로써이 문제를 해결할 수 있다고 생각했지만 입력 소스/모듈 파일이 아닌 최종 애셋 파일을 기반으로하여 소스 매핑 된 파일 만 제외 할 수 있음을 알게되었습니다.
그래서 this 플러그인을 사용하면 각 공급 업체 모듈을 수동으로 나열하는 대신 앱과 공급 업체 코드를 별도의 청크로 자동 분할 할 수 있습니다. ReferenceError: Can't find variable: webpackJsonp
내가 공급 업체 및 응용 프로그램 코드가있는 분할 있음이이 카르마는 사실을 따기되지 않은 사실로 인해 발생 확신 : 카르마를 실행할 때
는 그러나 나는이 오류가 발생하기 시작 별도의 청크로 작성되므로files
옵션 (예 : 벤더 파일이 아닌 테스트 파일 자체)으로 구성된 코드 만 포함됩니다.
그 files
설정 옵션을 구문 분석하고 처리하는 경우 카르마에 대해 알고하지 않기 때문에 각 테스트 파일, 나는 그것이 files
옵션 공급 업체 청크를 지정할 수 생각하지 않습니다 의미, 사전 처리 전에 같이 보인다 그것은 그것을 (너무 일찍) 찾으려고 할 당시에. 내가 볼 수
유일한 해결 방법은 다음과 같습니다
- 변화는 공급 업체 및 응용 프로그램 청크 파일의 분리를 처리 할 수 있도록 카르마이 구현되는 방법.
karma-webpack
을 사용하고 사전 처리하는 대신 테스트 모드에서 응용 프로그램을 빌드 한 다음 테스트 빌드 디렉토리의 Karma를 실행하여 공급 업체 청크가 충분히 빠를 수 있도록하십시오.
내가 놓친 해결책이 있습니까?
나는 그것이 일반적인 문제로 보이지 않는 것이 이상하다는 것을 안다.
편집 한
나는 this를 찾았지만 사람들은 웹팩 설정에 여러 진입 점의 사용 (즉, 응용 프로그램에 대한 하나 및 공급 업체에 대한 하나)이 제안되어있다. 나는 이것이 카르마와 함께 작동하는지 시험해 볼 것이지만, 여전히 당신이 vendor
배열에 넣은 것을 수동으로 추적해야한다는 큰 단점 (내 의견으로는)이있다. 나는. 패키지를 설치할 때마다 배열에 배열을 추가해야하며 그 반대의 경우도 마찬가지입니다.나는 (반면 그 것이다 webpack-split-by-path
플러그인) 공급 업체의 파일을 제외 소스 맵 웹팩 플러그인을 구성하기 전에
편집 2
합니다 (웹팩 설정에서) 여러 진입 점을 사용하여도 작동하지 않습니다.
"먼저 빌드 한 다음 테스트"방법을 구현하려고합니다.