inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Slack 클론 코딩[실시간 채팅 with React]

코드 스플리팅과 이모션

code-server 사용시 react-router-dom 오류

1192

이민석

작성한 질문수 6

0

안녕하세요

개발환경으로 code-server을 사용하고 있는데, 문제를 도대체 알 수 없어서 질문 올립니다 ㅜㅜㅜㅜㅜㅜ

code-server은 실행시 도메인/proxy/port로 실행 주소가 설정됩니다.

그래서 hot-reload 웹소켓 연결을 설정하기위해서 webpack.config.ts에

client: {
      webSocketURL: 'ws://0.0.0.0:443/proxy/3090/ws',
    },

를 추가했습니다.

index.html에서 src = "./dist/app.js"로 했습니다

다른 모든 코드는 setting/ts를 그대로 npm i 했습니다.

(여기까지 사전 참고내용)

 

 

이전 강의에서 App.tsx에 <div>코드어쩌구저쩌구</div>는 잘 나타났습니다.

이번 강의에서 react-router-dom을 도입해서 code-server에서 실행을 하게되면 브라우저에 아무런 화면이 나오지 않습니다.

 

그러나, code-server가 아닌 구름ide에서 같은 파일을 실행할 경우(서버 주소가 proxy가 아니게됨)

정상적으로 동작합니다.

 

 

  1. react-router-dom을 사용했더니 화면이 안보이기때문에 react-router-dom 과 관련된 문제라고 추측합니다.

  1. code-server에서 실행주소뒤에 'proxy/3090'이 붙었을때 문제가 생겼기 때문에 code-server 관련 문제로 추측됩니다.

  2. code-server사용시 가져온 파일이랑 구름ide사용시 가져온 파일 비교해보면, code-server에서 파일2개를 못 가져온것 같은데, 이게 문제인거 같기도 합니다.

 

 

또한, App.tsx에서 react-router을 빼고 다음과 같이 입력후 실행해보았습니다.

import React from 'react';
import loadable from '@loadable/component';
import { Switch, Route, Redirect } from 'react-router-dom';

import SignUp from '@pages/SignUp';

const App = () => {
  return <SignUp />;
};

export default App;

 가져온 파일 목록은 다음과 같고, 정상적으로 signup화면이 나타납니다.

이번에는 loadable/component가 문제인가 싶어서, 이걸빼고 다음과 같이 App.tsx를 입력했습니다.

import React from 'react';
import loadable from '@loadable/component';
import { Switch, Route, Redirect } from 'react-router-dom';

import LogIn from '@pages/LogIn';
import SignUp from '@pages/SignUp';

const App = () => {
  return (
    <Switch>
      <Route path="/login" component={LogIn} />
      <Route path="/signup" component={SignUp} />
    </Switch>
  );
};

export default App;

그랬더니 이전과 같이 화면에 아무것도 안나옵니다.

 

도대체 뭐가 문제인지를 모르겠네요 ㅜㅜㅜ

클론코딩 typescript Socket.io socket.io babel react 클론코딩 웹팩

답변 1

0

제로초(조현영)

code-server가 뭔지는 모르겠는데 주소를 /만 인식하는것 같은데요. /login /signup을 인식 못하는 것 아닌가요. historyApiFallback같은 옵션이 있어야할것같습니다.

0

이민석

code-server는 vscode를 웹에서 사용할 수 있게 해주는 ide입니다.

webpack.config.js에서 devServer 옵션에 historyApiFallback은 true로 되어있는데, 이거 말씀이신가요?

0

이민석

확실히 주소를 /만 인식하는게 맞는것 같습니다. App.tsx에서 다음과 같이 작성하고 어떤 주소로 접속하던지 signup화면이 뜨네요

image

0

이민석

좀 더 찾아보니, 배포환경에서 react-router을 사용할때 비슷한 문제를 겪으시는 분들이 있는것 같은데, 그분들은 create-react-app을 사용해서 advanced configuration 으로 .env에 PUBLIC_URL=/absproxy/3000와 같이 설정하셔서 해결하신 것 같더라고요(정확히 같은지는 모르겠지만)

webpack에서 위와 같은 설정 변경하려면 어떻게 하면 될까요?

0

제로초(조현영)

제가 봤을 때는 오히려 code-server쪽에서 historyApiFallback과 비슷한 기능을 찾으시는게 맞을 것 같은데요?

0

이민석

결국 code-server로 실습하는건 포기했습니다 ㅜㅜ

추가적질문 하나 더 있습니다.

  1. DevTools failed to load source map: Could not load content for webpack://sleact-ts-front/node_modules/react-router-dom/esm/react-router-dom.js.map: Fetch through target failed: Unsupported URL scheme; Fallback: HTTP error: status code 404, net::ERR_UNKNOWN_URL_SCHEME

  2. DevTools failed to load source map: Could not load content for webpack://sleact-ts-front/node_modules/react-router/esm/react-router.js.map: Fetch through target failed: Unsupported URL scheme; Fallback: HTTP error: status code 404, net::ERR_UNKNOWN_URL_SCHEME

실행시켰을때, 브라우저 console에 이렇게 경고 2개가 뜨는데, 무시하고 진행해도 될까요?

react-router랑 react-router-dom은 정상적으로 설치되어있습니다.

0

제로초(조현영)

소스맵이라 문제는 없습니다. 개발시에만 발생하는 경고입니다.

0

sunkitop

저도 정확히 같은 문제로 고생중입니다..ㅠㅠ

일단 .env에 PUBLIC_URL=/absproxy/3000는 해야 하구요

저는 "/" path만 정상적으로 표시되고, 다른 path는 아무 화면도 뜨지 않습니다. 기타 path를 처리해주는 <Route path="/*"> 를 추가하면 전부 그 쪽으로 라우팅되구요.

주소가 ip주소:8080/proxy/3000 여서 생기는 문제 같습니다.. 기본 path가 proxy/3000까지 포함한다는 걸 인식하지 못하는 것 같습니다. 지금 해결방법을 찾았는데, index.js에서 <BrowserRouter basename='/proxy/3000'> 로 설정하면 됩니다.

기본 셋팅과 관련하여

0

92

1

초기 셋팅 back과 front만 남겨두고 다 지운 후 진행 방법

0

96

2

focus 시에만 화면 업데이트 되는 이유 + 해결방법

0

150

2

useEffect 개수 관리

0

110

2

라이브러리 서치 방법

0

104

2

함수 정의 패턴

0

77

1

npm run dev 에러

0

152

3

npx webpack 후 에러

0

178

2

'void' 형식 식의 truthiness를 테스트할 수 없습니다.ts(1345)

0

144

2

사용자 가입시 에러발생 (TypeError: Cannot read properties of null (reading 'addMembers')

1

178

2

초기세팅중 packge.json 에러떠요

0

156

2

CORS - Access-Control-Allow-Origin 누락 문제

0

431

3

로그인 페이지 무한 새로고침 현상

0

598

2

Module not found: Error: Can't resolve './App' 에러

0

959

1

배포 방법

0

297

2

npm run dev 시 빌드가 매우 느려졌습니다

0

990

2

alias 경로 설정 오류

0

451

2

fetcher 함수의 data 값이 두번 찍히는 이유

0

277

1

제네릭 질문

0

218

2

ts-node 대신 tsx 사용여부

0

373

1

배포 관련 질문

0

247

1

[nginx + https] 서비스를 실행하면 niginx가 아닌 서비스 화면을 보여주게 하고 싶습니다.

0

385

2

[배포하기] webpack에 aws 퍼블릭 IPv4 주소 와 포트 주소를 작성하고 나서 빌드후 실행하면 오류가 발생합니다.

0

336

1

users 호출 시 쿠키가 담기지 않는 이슈 질문드립니다.

0

247

2