【TypeScript】tscコマンドが使えない時の対処法

3 min read読了の目安(約2700字

状況

  1. $ npm i typescript -gした後に$ tsc --versionとしてもcommand not foundとなる場合
  2. iTerm2ではtscコマンドが使えるが、VSCodeでtscコマンドが使えない場合

Too Long, Didn’t Read

  1. PATHを通す
  2. 再起動、Nodeの再インストール

環境

  • MacOS Big Sur v11.2.1
  • node v15.9.0
  • npm v7.5.3

対処

  1. $ npm i typescript -gした後に$ tsc --versionとしてもcommand not foundとなる場合

PATHを通します。
参考:PATHを通すとは?

npmがグローバルで使用しているディレクトリを確認する

$ npm bin -g
/Users/xxx/.nodebrew/node/v15.9.0/bin

.zschrに追記する(bashの方は.bash_profileで置き換えて読んでください)

$ sudo vi ~/.zshrc

iキーを押してINSERTモードにし、最終行に下記を追記。
私は見やすいようにコメントアウトで説明を書いています。

export PATH=$PATH:`npm bin -g`

escキー→:wqenterキーで保存し、viを抜けます。
$ source ~/.zshrcコマンドでやっと編集内容を反映できます。

何も出力されなければ反映成功なのですが、何故か私は反映できないと怒られてしまいました。

$ source ~/.zshrc
(not in PATH env variable)
/Users/xxx/.zshrc:export:129: not valid in this context: /Users/xxx/.nodebrew/node/v15.9.0/bin

PATHを直で書いてみる。

(省略)
# TypeScript
export PATH="/Users/xxx/.nodebrew/node/v15.9.0/bin$PATH"

再び$ souce ~/.zshrcで反映できました。

$ tsc --version
Version 4.1.5
  1. は以上です。

  1. iTerm2ではtscコマンドが使えるが、VSCodeでtscコマンドが使えない場合

上記1のやり方で、tscコマンドをiterm2で使うことが可能になったわけですが、何故かVSCodeのターミナルではcommand not foundのままだったので解決法を探ることに。

  1. VSCodeの再起動
  2. Macの再起動
  3. Node, TSを入れ直す

私は3でやっと直りました。

まず、npmをアンインストール

$ npm uninstall -g npm
$ rm -rf .npm \
>    node_modules

続いてNodeのアンインストール。ソース版だとアンインストールの方法が違います。今までソース版を使っていた方はこれを気にパッケージ版で楽に管理しましょう!

$ brew uninstall --force node
...

# homebrewのアップデート
$ brew update

# nodebrewのインストール
$ curl -L git.io/nodebrew | perl - setup
$ export PATH=$HOME/.nodebrew/current/bin:$PATH
$ source ~/.zshrc

以下のコマンドを打ち、nodebrewのバージョンが出ればインストール成功。

$ nodebrew -v
nodebrew 1.0.1

Nodejsのインストール。

バージョン指定もしくは最新のものをインストールできます。
{}にどちらかを入力

  • v○.○.○(例v6.11.4) → バージョン6.11.4
  • latest → 最新“
$ nodebrew install-binary {}
...
Installed successfully

# インストールしたバージョンのものが入っているか確認
$ nodebrew ls
v15.9.0

# 使用するバージョンを指定する
$ nodebrew use v15.9.0

# 最後にNodeのバージョンを確認!
$ node -v
v15.9.0

やっとこれで再起動前と同じ状態のとこまで戻ってきました...

ためしにtscコマンドを打ってみます。

$ tsc --version
zsh: command not found: tsc

もちろんできません。
最後にTypeScriptをインストールしてあげましょう!

$ npm install typescript -g

$ tsc --version
Version 4.1.5

VSCode上のターミナルでも問題なく使えました!
Zenn使いやすいですね!よろしければフォローお願いいたします。


参考:PATHを通すとは?
参考: 'tsc command not found' in compiling typescript
参考:【Mac版】node.jsのアンインストールと再インストール手順メモ