Nest : dist 내 public 폴더 생성하지 않는 문제, Git : 깃 브랜치 origin에서 가져오기

ESH'S VELOG·2023년 8월 30일
1

오늘의 문제 1번

프론트엔드 관리 파일 public으로 생성 후 서버와 연결하는 도중 프론트엔드 파일을 읽어오지 못하는 상황이 발생

Nest환경에서 프론트엔드와 백엔드를 연결 시 수행하는 순서
1) 프론트엔드 작업물 파일 분리(여기서는 루트폴더에 public폴더를 생성하여 작업. 즉 '/root/public')

2) npm install @nestjs/serve-static

3) app.module에서 ServeStaticModule 설정
아래 링크 참고
https://docs.nestjs.com/recipes/serve-static

4) main.ts 설정
4-1) join 가져오기(path)

import join from 'path'

4-2) bootstrap 내부에 app 설정

app.useStaticassAssets(join(__dirname, '../', 'public))

5) npm run start

문제발생

=> 실행 후 localhost:3000/index.html을 들어가니

[Nest] 29776  - 2023. 08. 30. 오후 4:25:03   ERROR [ExceptionsHandler] ENOENT: no such file or directory, stat 'E:\backend\dist\public\index.html'
Error: ENOENT: no such file or directory, stat 'E:\backend\dist\public\index.html'

구글링 해보니 nest가 컴파일 시 dist파일에 public 폴더가 올라가지 않으면 실행되지 않는 것 같다.

시도해 본 작업
a) npm run start
b) npm run build
c) nest-cli.json 설정 변경
d) dist 폴더 변경
실제로 보니 dist파일에 public폴더가 복사되지 않았고 이 문제를 해결하기 위해 dist파일에 생긴 복사본을 삭제하고 오류가 나지 않는 다른사람의 dist파일을 복사해서 붙여넣었지만 실행 후 컴파일 되는 파일이 올라가는 것이므로 초기화되면서 무의미해진 작업이었다.

이 때 생각난 것이 hotreloaded를 설치하면서 명령어를
npm run start:dev로 실행될 수 있게끔 설정했는데 이 부분이 다른 사람들과 달랐다.

결과

프론트-백엔드를 연결해주기 위해 1~4까지 실행한 부분은 문제가 없었으나 컴파일 및 서버 실행을 위한 명령어를 다르게 해주면 dist에서 문제없이 복사 할 수있다.

오늘의 문제 2번

local에서 문제가 생겨 Git Clone 후 GitHub에 있는 브랜치를 가져와야 하는 상황

1) 문제가 생겨서 로컬에 있는 프로젝트를 아예 지워버림

2) 깃 Bash로 git clone SSH주소 복사 후 실행

3) 로컬에는 브랜치를 가지고 있지 않아서 브랜치를 직접 만들고 pull받아야하는가에 대해서 생각하게 됨

구글링하여 찾아보니 아래와 같은 명령어를 입력하면 git-hub에 올라와있는 branch를 받아올 수 있었다.

git checkout -t origin/develop
profile
Backend Developer - Typescript, Javascript 를 공부합니다.

1개의 댓글

comment-user-thumbnail
2023년 8월 30일

고생하셨네요^^ 참고하겠습니다.

답글 달기