Tsc is not recognized as an internal or external command

avatar

Borislav Hadzhiev

Last updated: Mar 26, 2022

banner

Photo from Unsplash

Tsc is not recognized as an internal or external command #

To solve the error "tsc is not recognized as an internal or external command, operable program or batch file", install typescript globally by running npm install typescript@latest -g or prefix tsc with npx, e.g. npx --package typescript tsc --init.

One way to solve the error is to use the npx command with the --package flag.

shell
# 👇️ generate tsconfig.json file npx --package typescript tsc --init # 👇️ show typescript version npx --package typescript tsc --version

Notice that we used the --package flag to specify the correct typescript package in the commands above.

Alternatively, you can install typescript globally by running the following command.

shell
# 👇️ install typescript globally npm install typescript@latest -g # 👇️ generate tsconfig.json file tsc --init # 👇️ get typescript version tsc --version

Now you are able to use the correct tsc command without having to prefix it with npx and use the --package flag.

If the global installation of typescript fails, you might have to run the command prefixed with sudo.
shell
# 👇️ If you got permissions error, run with sudo sudo npm install typescript@latest -g tsc --init tsc --version

If you are able to run the tsc --version command and get the version number of the typescript package, then the installation has succeeded.

If that doesn't help, run the following command:

shell
npm config get prefix

The command will show you the path where npm puts your globally installed packages. The global packages will be in the bin directory at the specified path.

Look at the PATH environment variable on your operating system and add the path that the npm config get prefix command outputs if it's not already there.

If you add the output from the command to your PATH environment variable, you have to restart any open command prompts before it takes effect.

If that didn't work, try to add the path to the bin folder (from npm config get prefix) to your PATH environment variable and restart your terminal.

For example, on macOS, you can update your path with the following command:

shell
# make sure path matches with npm config get prefix export PATH=/usr/local/share/npm/bin:$PATH

And on Windows, the output of the npm config get prefix command will look something like: C:\Users\{Your_User_Name}\AppData\Roaming\npm.

If you are on Linux, you can add the output from the npm config get prefix command to your .bashrc file.

~/.bashrc
# 👇️ make sure to update the path with the output # from the command export PATH="/usr/local/share/npm/bin:$PATH"
If you add the output from the command to your PATH environment variable, you have to restart any open command prompts before it takes effect.

If that doesn't help try to reinstall Node.js on your machine and then install typescript globally by running npm install typescript@latest -g.

During the installation, you might get a prompt for whether you want to automatically update the PATH environment variable on your system, make sure to tick the option.
shell
npm install typescript@latest -g tsc --init tsc --version

If the global installation of typescript fails, you might have to run the command prefixed with sudo.

shell
# 👇️ If you got permissions error, run with sudo sudo npm install typescript@latest -g tsc --init tsc --version

Alternatively, you can see how you can fix the permissions error on this page in the official npm docs.

Conclusion #

To solve the error "tsc is not recognized as an internal or external command, operable program or batch file", install typescript globally by running npm install typescript@latest -g or prefix tsc with npx, e.g. npx --package typescript tsc --init.

I wrote a book in which I share everything I know about how to become a better, more efficient programmer.
book cover
You can use the search field on my Home Page to filter through all of my articles.