npm 명령어로 typescript 컴파일러를 설치했는데도 불구하고
Command not found : tsc 가 출력되는 상황이였는데요.
구글링 해보고 path 환경변수 수정해주고
별 짓을 다 했는데도 안되던 상황이였습니다.
파일경로가 잘못된건가 싶어 계속 수정도 해보구요.
tsc 실행 파일이 위치한 디렉토리가
시스템의 PATH 환경 변수에 자동으로 추가되지 않았기 때문에 발생한 문제로 보고,
다음 단계대로 해봤습니다.
- npm의 전역 설치 위치 찾기
먼저, npm이 전역 패키지를 설치하는 위치를 확인하기 위해
다음 명령어를 사용하여 해당 위치를 찾았습니다.
npm config get prefix
이 명령어는 npm의 전역 설치 경로를 출력해주는데요.
macOS 또는 Linux 시스템에서 이 경로는 일반적으로
/usr/local~~ 또는
사용자의 홈 디렉토리 내의 .npm-global 폴더일 수 있습니다.
- PATH에 npm의 전역 설치 위치 추가
찾은 경로에 /bin을 추가하여 tsc 실행 파일이 있는 정확한 경로를 알아봅니다.
예를 들어,
npm의 전역 설치 경로가 /Users/yourusername/.npm-global이라면,
실행 파일 경로는 /Users/yourusername/.npm-global/bin이 됩니다.
해당 경로를 PATH 환경 변수에 추가하려면, 터미널에서 다음과 같이 입력합니다
(bash 또는 zsh 셸을 사용하는 경우):
~/.bash_profile 인 경우
echo 'export PATH="$PATH:/Users/yourname/.npm-global/bin"' >> ~/.bash_profile
~/.zshrc 인 경우
echo 'export PATH="$PATH:/Users/yourname/.npm-global/bin"'
여기서 /Users/yourusername/.npm-global/bin은
실제 npm의 전역 설치 경로에 해당합니다.
- 변경사항 적용
변경한 프로파일 파일을 적용하기 위해 터미널 세션을 재시작하거나,
다음 명령어로 즉시 적용할 수 있습니다
source ~/.bash_profile
또는
source ~/.zshrc
이 과정을 통해 tsc 명령어를 사용할 때 발생할 수 있는 PATH 관련 문제를 해결할 수 있고,
tsc 명령어가 시스템의 어디에서나 실행될 수 있게 됩니다.\
HomeBrew 를 설치해서 brew 명령어로 해보라는 글을 봤는데요.
brew install typescript
해당 명령어로 다시 설치해보고 tsc를 실행시켰는데 됐습니다.
npm 명령어랑 무슨 차이지....?
npm i typescript -g 명령어와 brew install typescript 명령어
둘 다 TypeScript를 시스템에 설치하지만,
두 명령어는 설치 과정과 환경 설정에 있어
몇 가지 중요한 차이점이 있었습니다.
설치 방식의 차이
npm i typescript -g 명령어는
Node.js의 패키지 관리자인 npm을 사용하여
TypeScript를 전역적으로 설치합니다.
이 방법으로 설치할 경우,
TypeScript 컴파일러(tsc)는 일반적으로
Node.js가 설치된 디렉토리 내의 전역 패키지 위치에 설치됩니다.
brew install typescript 명령어는
Homebrew를 사용하여 TypeScript를 설치합니다.
Homebrew는 macOS (또는 Linux) 용 패키지 관리자로,
소프트웨어를 설치, 관리, 제거하는 데 사용됩니다.
Homebrew를 사용하여 설치한 패키지는 일반적으로 /usr/local 경로에 설치되며,
Homebrew가 관리하는 경로에 자동으로 추가됩니다.
환경 변수 설정의 차이
tsc 실행 파일의 경로를 시스템의 PATH 환경 변수에 직접 추가해야 할 수 있습니다.
특히 npm의 전역 패키지가 설치되는 위치가
기본 시스템 PATH에 포함되지 않았을 때 필요합니다.
Homebrew는 자동으로 설치한 패키지의 실행 파일 경로를 PATH 환경 변수에 추가합니다.
따라서 사용자가 수동으로 경로를 추가할 필요가 없으며,
설치 직후 tsc 명령어를 사용할 수 있습니다.
brew install typescript 명령어가
npm i typescript -g 명령어보다
macOS에서 더 직관적이고 문제없이 작동하는 경향이 있다는 것 입니다.
Homebrew를 통한 설치가 시스템 환경 변수 설정을 자동으로 관리해 주기 때문에,
사용자가 수동으로 경로를 설정할 필요가 없어서 더 편리합니다.