Command not found : tsc

dev_Ore·2024년 2월 19일
post-thumbnail

npm 명령어로 typescript 컴파일러를 설치했는데도 불구하고
Command not found : tsc 가 출력되는 상황이였는데요.

구글링 해보고 path 환경변수 수정해주고
별 짓을 다 했는데도 안되던 상황이였습니다.

파일경로가 잘못된건가 싶어 계속 수정도 해보구요.

tsc 실행 파일이 위치한 디렉토리가
시스템의 PATH 환경 변수에 자동으로 추가되지 않았기 때문에 발생한 문제로 보고,
다음 단계대로 해봤습니다.

  1. npm의 전역 설치 위치 찾기

먼저, npm이 전역 패키지를 설치하는 위치를 확인하기 위해
다음 명령어를 사용하여 해당 위치를 찾았습니다.

npm config get prefix

이 명령어는 npm의 전역 설치 경로를 출력해주는데요.
macOS 또는 Linux 시스템에서 이 경로는 일반적으로
/usr/local~~ 또는
사용자의 홈 디렉토리 내의 .npm-global 폴더일 수 있습니다.

  1. 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의 전역 설치 경로에 해당합니다.

  1. 변경사항 적용

변경한 프로파일 파일을 적용하기 위해 터미널 세션을 재시작하거나,
다음 명령어로 즉시 적용할 수 있습니다

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가 관리하는 경로에 자동으로 추가됩니다.


환경 변수 설정의 차이

npm i typescript -g 를 사용하여 설치한 경우,

tsc 실행 파일의 경로를 시스템의 PATH 환경 변수에 직접 추가해야 할 수 있습니다.
특히 npm의 전역 패키지가 설치되는 위치가
기본 시스템 PATH에 포함되지 않았을 때 필요합니다.


brew install typescript를 사용하여 설치한 경우,

Homebrew는 자동으로 설치한 패키지의 실행 파일 경로를 PATH 환경 변수에 추가합니다.
따라서 사용자가 수동으로 경로를 추가할 필요가 없으며,
설치 직후 tsc 명령어를 사용할 수 있습니다.


결론적으로,

brew install typescript 명령어가
npm i typescript -g 명령어보다
macOS에서 더 직관적이고 문제없이 작동하는 경향이 있다는 것 입니다.

Homebrew를 통한 설치가 시스템 환경 변수 설정을 자동으로 관리해 주기 때문에,
사용자가 수동으로 경로를 설정할 필요가 없어서 더 편리합니다.



mac에서는 명령어는 제발 HomeBrew 설치해서 사용합시다.

profile
덕업일치를 지향하는 개발자

0개의 댓글