티스토리 뷰
내가 필요로 하는 노드 버전과 로컬의 버전이 맞지 않아 nvm으로 필요로 하는 버전의 노드를 설치하고 IntelliJ 프로젝트를 실행해봤지만 여전히 로컬에 설치했던 높은 버전의 노드만 인식했다.
구글링을 해보니까 이런 현상을 겪은 사람이 꽤 있었고 사람들이 제시하는 여러 방법들을 종합해서 해결해 정리해보려 한다.
문제
프로젝트에 필요한 노드는 10.15.3 버전이었고 내가 처음에 로컬에 설치한 노드는 16.14.2 버전이었다.
nvm으로 10.15.3 버전을 새로 설치하고 사용하도록 설정을 해서 로컬에서 iterm으로 조회해보면 10.15.3 버전이 잘 나왔지만 intellij의 터미널에서 조회해보면 게속 처음에 설치했던 16.14.2 버전이었다.
Preferences에 들어가서 10.15.3 노드를 사용하도록 설정되어 있는 것을 확인해봐도 마찬가지였다.
이 현상에 대해 여러 사람들이 논의한 것을 보고 원인을 추측해보면,
IntelliJ 터미널의 경우 기본적으로 login shell 구성은 읽지만 대화형 shell의 구성은 읽지 않아서 이와 같은 문제가 발생한다고 한다.
nvm을 intelliJ에서 사용하기 위해서는 intelliJ의 터미널을 대화형 shell로 변경해서 실행해야할 필요가 있는 것이다.
(이 부분에 대해서는 명확히 와닿지 않긴 하다.)
해결
이를 위해서는 intelliJ의 터미널 설정을 변경해야한다.
Preferences > Tools > Terminal > Shell path의 뒤에 -i 옵션을 붙여서 대화형 쉘로 전환되도록 한다.
이 때 '/bin/zsh -i' 이든 '/bin/bash -i' 이든 상관 없이 사용하고 있는 쉘에 대해 -i를 붙여주면 된다.
이렇게 변경하고 터미널을 껐다가 다시 켜서 아래 명령을 쳐서 node version이 nvm으로 설정해놓은 버전으로 바뀌었는지 확인한다.
node --version
npm zsh: command not found node
대화형 쉘로 전환하고 노드 버전을 확인했을 때 위와 같은 에러가 발생할 수 있다.
분명 노드가 설치되어 있는데 이게 무슨 일인가?!
이건 쉘에서 nvm로 node를 제대로 인식하지 못해서 발생하는 것으로 쉘 파일에 들어가서 NVM_DIR 환경 변수를 설정해주면 된다.
'/bin/bash' 사용시에는 bashrc 파일을, '/bin/zsh' 사용 시 zshrc를 변경해주면 된다.
두 파일들은 /etc에서 발견해 수정했다.
vim /etc/zshrc // bash
vim /etc/bashrc // zsh
두 파일을 열어 아래와 같이 NVM_DIR 환경변수를 설정한다.
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
✋ IntelliJ Terminal
https://www.jetbrains.com/help/idea/terminal-emulator.html#open-terminal
✋ npm is installed using nvm but IntelliJ doesn't know about it
✋ Command-Line Options
http://www.catb.org/~esr/writings/taoup/html/ch10s05.html
'소소한 Tip' 카테고리의 다른 글
git repository clone 방식 및 SSH 설정 (0) | 2024.07.17 |
---|---|
코드를 분석해 고칠 점을 알려주는 SonarLint(IntelliJ 플러그인) (0) | 2022.02.18 |
SSH 접속 기능을 제공하는 terminus 앱 (0) | 2022.02.16 |
Mac 'Apple에서 악성 소프트웨어가 있는지 확인할 수 없기 때문에 열 수 없습니다.' 해결 방법 (0) | 2021.12.24 |
Sourcetree git 인증 실패 에러 해결 방법 (1) | 2021.09.15 |
- Total
- Today
- Yesterday
- 어노테이션
- DB
- k8s
- Caching
- eclipse
- ssh
- MAC
- 캐싱
- JPA
- springboot
- annotation
- DATABASE
- Intellij
- 이클립스
- mockito
- 메시지큐
- rabbitmq
- 공간데이터
- HttpClient
- PostgreSQL
- Java
- 데이터베이스
- 자바
- 스프링부트
- 캐시
- Spring
- cache
- enum
- postgres
- 역직렬화
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |