1.IE에서_리액트_쓰기
IE 11에서 리액트 쓰기
문제 상황 !
기본적인 CRA로는 IE 11를 지원하지 못함
첫 번째 시도
react-app-polyfill
을 install 후 import 시켜주고node_modules
에서.cache
를 지우고package.json
의browsers list
에"ie 11"
을 추가했지만 ie11에서The error you provided does not contain a stack trace.
라는 에러를 내며 동작하지 않음.
1
2import "react-app-polyfill/ie11";
import "react-app-polyfill/stable";1
2
3
4
5
6
7
8
9
10
11
12
13
14
15// package.json
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all",
"ie 11"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version",
"ie 11"
]
}
두 번째 시도
npm i fast-text-encoding
후 import 시켜줬지만 같은 에러를 내며 동작하지 않음
1
import "fast-text-encoding/text";
세 번째 시도
./node_modules/react-dev-utils/webpackHotDevClient.js:60
에slashes: true
를 추가했더니 성공!!참고 :
v3.3.0
의 react-scripts
패키지 일 때
1 | // Connect to WebpackDevServer via a socket. |
2020.02.22 추가
세 번째 시도가 필요했던 이유:
https 프로토콜
사용 시에는WebSockets over SSL/TLS (WSS) 프로토콜
을 사용해야 하는데,create-react-app
하위 패키지인react-scripts
패키지 v3.3.0 에서 http 와 https 모두WebSockets (WS)
를 사용하도록 설정되어 있어서 생긴 이슈react-scripts
패키지 v3.3.0 에서 webPackDevServer 설정이 SockJS에서 WebSocket으로 전환되었다.url.format
이ws://localhost
이 아니라ws:localhost
처럼 URL을 리턴하기 때문에(no slashes) IE에서 Syntax Error를 던진다.
2020.02.14에 3.4.0 버전으로 업데이트 됨!