If you’re trying to use the ts-node command and are encountering the error “ts-node is not recognized as an internal or external command, operable program, or batch file,” there are a few solutions you can try.
Solution 1: Use npx
The quickest solution is to use the npx command. Simply prefix your ts-node command with npx, like so:
npx ts-node myScript.ts
You can also check the version of ts-node you have installed with npx:
npx ts-node --version
Solution 2: Install ts-node Globally or as a Development Dependency
Another option is to install ts-node globally or as a development dependency for your project.
To install ts-node globally, run the following command:
npm install -g ts-node
To install ts-node as a development dependency for your project, run this command from the root directory of your project:
npm install --save-dev ts-node
Installing ts-node locally for your project has the added benefit of allowing you to control and share the versions through your package.json file. Instead of using the ts-node command directly, you can add a script to your package.json file.
If the global installation of ts-node fails, you may need to open your shell as an administrator or prefix the command with sudo, like so:
sudo npm install -g ts-node
Solution 3: Use npm link
If you have ts-node installed globally, you can link your project to the globally installed ts-node package by running the following command from the root directory of your project:
npm link ts-node
This creates a symbolic link from the globally installed package to the node_modules/ directory of your current project.
Solution 4: Restart Your Terminal
If none of the above solutions resolve the error, try restarting your terminal.
Solution 5: Update Your
PATH Environment Variable
If the error persists, you may need to update your PATH environment variable. First, run the following command to find the path where npm installs your globally installed packages:
npm config get prefix
This will output a path such as C:\Users\Your_User_Name\AppData\Roaming\npm. Make sure this path is included in your PATH environment variable.
To update the
PATH on a Windows machine:
Updating the PATH on Windows
- Open the start search and type in env.
- Click “Edit the system environment variables“.
- Click “Environment Variables“.
- Under “System Variables“, scroll down and click on the Path variable.
- Click “Edit“.
- Click “New” and add the output from the npm config get prefix command.
- The path should look like C:\Users\Your_User_Name\AppData\Roaming\npm (make sure to replace the Your_User_name placeholder with your actual username).
- Click “OK” to close the “Edit environment variable” window.
- Click “OK” again to close the “Environment Variables” window.
- Close any open command prompts and reopen them for the changes to take effect.
Solution 6: Set the Execution Policy on Windows
If you encounter the error “ts-node cannot be loaded because running scripts is disabled on this system“, you’ll need to set the execution policy for PowerShell. To do this, open PowerShell as an administrator and run the following command:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
This removes the execution policy of Restricted, which doesn’t allow scripts to be run or configuration files to be loaded. Restricted is the default execution policy for Windows client computers.
Updating the PATH on macOS
To update the PATH on macOS, use the following command:
Updating the PATH on Linux
To update the PATH on Linux, add the output from the npm config get prefix command to your .bashrc file:
# make sure to update the path with the output # from the command export PATH=<output from npm config get prefix>:$PATH
Solution 7: Install ts-node as a Global Package
If you still can’t resolve the error, try installing ts-node as a global package. To do this, run the following command:
npm install -g ts-node
Then, add the path to the ts-node executable to your PATH environment variable. On Windows, the path will be similar to C:\Users\Your_User_Name\AppData\Roaming\npm. On macOS and Linux, the path will be /usr/local/share/npm/bin.
If you’re encountering the “ts-node is not recognized as an internal or external command” error, try one of the solutions outlined above. Whether you use npx, install ts-node globally or as a development dependency, update your PATH environment variable, or set the execution policy on Windows, one of these solutions should help you get ts-node working properly.