2017-04-26 12 views
1

Webpack 1.x에서 React 프로젝트 용 Webpack 2.x로 업그레이드했는데 핫 리로드를 제외하고 모든 것이 잘 실행됩니다. 문제는 내가 프로젝트에서 파일을 업데이트 할 때마다 HotModuleReplacementPlugin이 오류 Error TypeError: Cannot read property 'filter' of undefined으로 넘어져 있다는 것입니다.Webpack 2 핫 리로드 오류 TypeError : 정의되지 않은 'filter'속성을 읽을 수 없습니다.

저는 HotModuleReplacementPlugin.js 내의 버그처럼 보입니다.하지만 내 구성에서 이상한 일을하지 않았 음을 확인하고 싶습니다. (즉, 빌드를 청크로 만들지 않고, 어떤 일이 일어날 수 있습니까?) Webpack repo에서 문제/PR로 제기하기 전에.

113 행의 HotModuleReplacementPlugin.js에있는 코드 var currentChunk = this.chunks.find(chunk => chunk.id === chunkId);은 Chunk 객체가 아닌 내 빌드에서 -1을 반환합니다.이 객체는이 행 다음에 오는 로직이 의존합니다.

라인 114의 if 문을 if(currentChunk) {에서 if(currentChunk && currentChunk.modules) {으로 변경하여 로컬 버전을 "수정"할 수 있었지만 여기에 놓친 것이 있습니까?

답변

0

지금이 문제의 최하점에 도달했습니다. 이는 종속성 q-io에 의해 발생되었으며, 차례로 collections의 dep가있었습니다. 컬렉션은 배열에 내장 된 find 함수를 무시하고 잘못 구현하므로 정의되지 않은 대신 -1이 반환됩니다.