2017-10-05 9 views
3

개발 모드에서 create-react-app를 실행할 때 오류 오버레이를 비활성화하는 방법이 있습니까? 개발 모드에서 오류 오버레이 사용 안 함

내가 이야기하고있는 오버레이입니다 :

enter image description here

내 응용 프로그램에서 메신저 사용하여 오류 경계 (React 16 Error Boundaries)이 때 구성 요소 충돌 오류 메시지를 표시하기 때문에이 부탁 해요,하지만 오류 오버레이가 튀어 나와 내 메시지를 덮습니다.

답변

1

우리는 개발에 오류 오버레이를 해제 할 수있는 옵션을 제공하지 않습니다. 오류 경계가 적용되지 않습니다 (프로덕션 용도로 사용됨).

개발 오류 오버레이와 오류 경계를 모두 가지고 있어도 아무런 해가 없습니다. 오류 경계를 보려면 간단히 [escape]을 누르십시오.

우리는 오류 오버레이가 일반적인 오류 경계 (소스 코드, 열려면 클릭 등)에 대한 엄청난 가치를 제공한다고 생각합니다. 모든 사용자에 대해 기본 구성 요소로 핫 구성 요소 다시로드를 활성화하는 것도 중요합니다.

오버레이를 사용하지 않도록 설정하려면 react-scripts에서 꺼내고 webpackHotDevClient의 사용을 중지해야합니다. 덜 관입적 인 방법은 window의 오버레이로 설치된 error 이벤트 수신기를 제거하는 것일 수 있습니다.

+0

정말 좋은 팁! 이제 오류 범위를 테스트하기 위해 환경 변수를 조작 할 필요가 없습니다. – arvinsim

0

나는 동일한 문제가 있었고 오랜 시간 동안 create-react-app 소스를 파고있었습니다. 내가 그것을 해제하는 방법을 찾을 수 없지만, 그 자리에 넣어 청취자를 제거 할 수 있습니다, effectivly 오류 메시지를 중지합니다. developerconsole을 열고 html 태그를 선택하십시오. 여기서 unhandledError.js에 의해 놓인 오류 및 unhandlerejection 이벤트 리스너를 제거 할 수 있습니다. 화면 오른쪽 상단의 x를 클릭하여 오류 메시지를 닫으면 메시지가 표시됩니다. config/webpack.config.dev.js에서

0

entry 배열

require.resolve('react-dev-utils/webpackHotDevClient'), 

에 다음 줄을 주석 그리고이 두 가지의 주석 :

require.resolve('webpack-dev-server/client') + '?/', 
require.resolve('webpack/hot/dev-server'),