상세 컨텐츠

본문 제목

[nestJS] 실행 오류 해결

카테고리 없음

by esoesmio 2024. 5. 20. 22:50

본문

NestJS 프로젝트에서 `npm install` 실행 중 발생한 오류는 `@nestjs/typeorm` 모듈과 `typeorm` 모듈 간의 의존성 충돌 때문입니다. 오류 메시지에 따르면, `@nestjs/typeorm@8.1.4`는 `typeorm`의 `^0.3.0` 버전을 요구하지만, 현재 프로젝트에 설치된 `typeorm`의 버전은 `0.2.45`입니다. 이는 `@nestjs/typeorm`의 필요 조건을 충족시키지 못하기 때문에 발생하는 문제입니다.

### 해결 방법

1. **의존성 버전 명시적 업데이트**
   - 프로젝트에서 사용 중인 `typeorm`의 버전을 `^0.3.0` 이상으로 업데이트해야 합니다. 이는 `@nestjs/typeorm@8.1.4`가 요구하는 최소 버전과 호환됩니다.
   - 다음 명령을 사용하여 `typeorm`을 업데이트할 수 있습니다:
     ```bash

     npm install typeorm@^0.3.0

     ```
   - 이렇게 하면 최신 버전의 `typeorm`이 설치되며, `@nestjs/typeorm`과의 의존성 충돌이 해결됩니다.

2. **`--force` 옵션 사용**
   - `npm install --force` 명령을 사용하여 강제로 의존성을 설치할 수 있습니다. 이 방법은 충돌을 간단히 무시하고 설치를 강제로 진행하지만, 호환성 문제로 인해 실행 시 예상치 못한 오류가 발생할 수 있습니다.
   - 사용 방법:
     ```bash

     npm install --force

     ```

3. **`--legacy-peer-deps` 옵션 사용**
   - NPM 7 이상에서는 기본적으로 피어 의존성 충돌을 엄격하게 처리합니다. `--legacy-peer-deps` 옵션을 사용하면 이전 버전의 NPM처럼 피어 의존성 충돌을 덜 엄격하게 처리할 수 있습니다.
   - 사용 방법:
     ```bash

     npm install --legacy-peer-deps

     ```

### 추천 방법

의존성 문제를 근본적으로 해결하기 위해서는 프로젝트의 `typeorm` 버전을 업데이트하는 것이 가장 권장되는 방법입니다. 이렇게 하면 나중에 다른 의존성 문제를 방지하고, 최신 기능과 버그 수정 혜택을 받을 수 있습니다. `--force`나 `--legacy-peer-deps`는 일시적인 해결책으로, 잠재적인 호환성 문제가 있을 수 있으므로 주의해서 사용해야 합니다.

 

 

깃 오류.

 

 

 

 

 

git rm -r --cached node_modules
git commit -m "Remove node_modules from tracking"

 

`.gitignore` 파일이 있음에도 불구하고 `node_modules` 디렉터리 내의 파일들이 git 커밋에 포함되는 문제는 일반적으로 몇 가지 가능한 원인으로 발생할 수 있습니다. 여기서 몇 가지 가능성과 그에 따른 해결 방법을 살펴보겠습니다.

### 1. `.gitignore` 파일의 위치
`.gitignore` 파일이 프로젝트의 루트 디렉터리에 위치해 있는지 확인하세요. `.gitignore` 파일은 그것이 위치한 디렉터리와 그 하위 디렉터리에만 영향을 미칩니다. 따라서, 이 파일이 프로젝트의 루트가 아닌 다른 곳에 위치해 있다면 `node_modules` 폴더를 올바르게 무시하지 못할 수 있습니다.

### 2. 이미 추적 중인 파일
`.gitignore` 파일은 아직 추적(tracked)되지 않은 파일에만 영향을 미칩니다. 만약 `node_modules` 폴더의 파일들이 이미 git에 의해 추적되고 있다면, `.gitignore`에 해당 경로를 추가해도 이미 추적 중인 파일들은 계속 추적됩니다.

#### 해결 방법:
- `node_modules` 폴더를 git 추적에서 제거합니다. 이 작업은 폴더를 실제로 삭제하지는 않지만, git 추적 목록에서는 제거됩니다.
  ```bash

  git rm -r --cached node_modules
  git commit -m "Remove node_modules from tracking"


  ```

### 3. `.gitignore` 파일의 규칙 확인
`.gitignore` 파일 내의 규칙을 정확히 작성했는지 다시 한번 확인하세요. 예를 들어, `/node_modules`는 프로젝트 루트 디렉터리 바로 아래의 `node_modules` 폴더만을 지칭합니다. 만약 프로젝트 구조가 다르거나 `node_modules` 폴더가 다른 위치에 있을 경우, 이 경로가 정확히 매치되지 않을 수 있습니다.

### 4. 기타 `.gitignore` 충돌
다른 `.gitignore` 파일(예: 전역 `.gitignore` 파일)이 있어서 설정이 충돌하는 경우도 있습니다. 프로젝트 또는 사용자의 홈 디렉터리에 다른 `.gitignore` 설정이 있는지 확인해 보세요.

### 5. Git 캐시 확인
위의 단계를 완료한 후에도 문제가 해결되지 않는다면, git 캐시를 리셋해 보는 것이 좋습니다. 때로는 이전의 git 인덱스가 영향을 줄 수 있기 때문입니다.
```bash

git rm -r --cached .
git add .
git commit -m "Fixed untracked files"


```

위의 명령은 모든 파일을 캐시에서 제거한 다음 다시 추가하고, `.gitignore`의 규칙에 따라 제외할 파일을 제외한 상태로 커밋합니다. 이 방법으로 `node_modules`가 정상적으로 무시되는지 확인할 수 있습니다.

댓글 영역