最近在开发 TypeScript 项目时,突然发现 tsc
命令在终端和 VS Code 里都无法运行了。经过一番折腾,终于找到了解决方法,记录一下,希望能帮到遇到同样问题的朋友。
问题现象
- 终端输入
tsc
显示command not found
- VS Code 的终端也无法识别
tsc
- 之前明明能用,突然就不行了
排查过程
1. 检查 Node.js 和 npm 是否正常
首先,我运行了以下命令检查 Node.js 环境:
bash
node -v # 查看 Node.js 版本
npm -v # 查看 npm 版本
如果这两个命令报错 command not found
,说明 Node.js 没装好,或者环境变量 PATH
没配置正确。
解决方法
-
推荐使用
nvm
管理 Node.js (避免权限问题):bash# 安装 nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash # 安装最新 LTS 版本 nvm install --lts nvm use --lts
-
或者直接从 Node.js 官网 下载安装
2. 检查 TypeScript 是否全局安装
tsc
是 TypeScript 的编译器,需要全局安装:
bash
npm list -g typescript # 查看是否安装
which tsc # 查看 tsc 路径
如果 npm list -g typescript
没有输出,说明没装;如果 which tsc
返回空,可能是 PATH
没包含 npm 的全局路径。
解决方法
bash
# 全局安装 TypeScript
npm install -g typescript
# 查看 npm 全局安装路径
npm config get prefix
# 通常是 /usr/local 或 ~/.nvm/versions/node/...
# 临时修复 PATH(当前终端生效)
export PATH="$PATH:$(npm config get prefix)/bin"
# 永久修复(写入 ~/.zshrc)
echo 'export PATH="$PATH:$(npm config get prefix)/bin"' >> ~/.zshrc
source ~/.zshrc # 重新加载配置
3. 修复 VS Code 无法识别 tsc
即使终端修复了,VS Code 可能还是不行,因为它的环境变量可能没继承终端的 PATH
。
解决方法
-
确保
code
命令可用 (让 VS Code 从终端启动,继承环境变量):-
打开 VS Code,按
Cmd+Shift+P
,输入Shell Command: Install 'code' command in PATH
并执行。 -
如果不行,手动添加:
bashsudo ln -s "/Applications/Visual Studio Code.app/Contents/Resources/app/bin/code" /usr/local/bin/code
-
-
从终端启动 VS Code (这样能继承终端的
PATH
):bashcode . # 在当前目录打开 VS Code
-
在 VS Code 里检查
tsc
:-
打开 VS Code 终端(``Ctrl+```),运行:
bashwhich tsc
如果返回正确路径,说明修复成功。
-
4. 其他可能的问题
-
权限问题 :如果
npm install -g
报错,可能是权限问题:bashsudo chown -R $(whoami) ~/.npm sudo chown -R $(whoami) /usr/local/lib/node_modules
-
VS Code 使用内置 TypeScript :
点击右下角的{}
图标,选择 使用工作区版本的 TypeScript。
总结
- 确保 Node.js 和 npm 正常 (推荐
nvm
管理)。 - 全局安装 TypeScript (
npm install -g typescript
)。 - 检查
PATH
是否包含 npm 全局路径 (修改~/.zshrc
)。 - 让 VS Code 从终端启动 (使用
code
命令)。
这样基本就能解决 tsc
失效的问题了。如果还是不行,可以检查 Shell 配置(~/.zshrc
或 ~/.bash_profile
)或者重新安装 Node.js。
希望这篇记录能帮到你!🚀