解决 Mac 终端和 VS Code 中 tsc 命令失效的问题

最近在开发 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

解决方法

  1. 确保 code 命令可用 (让 VS Code 从终端启动,继承环境变量):

    • 打开 VS Code,按 Cmd+Shift+P,输入 Shell Command: Install 'code' command in PATH 并执行。

    • 如果不行,手动添加:

      bash 复制代码
      sudo ln -s "/Applications/Visual Studio Code.app/Contents/Resources/app/bin/code" /usr/local/bin/code
  2. 从终端启动 VS Code (这样能继承终端的 PATH):

    bash 复制代码
    code .  # 在当前目录打开 VS Code
  3. 在 VS Code 里检查 tsc

    • 打开 VS Code 终端(``Ctrl+```),运行:

      bash 复制代码
      which tsc

      如果返回正确路径,说明修复成功。


4. 其他可能的问题

  • 权限问题 :如果 npm install -g 报错,可能是权限问题:

    bash 复制代码
    sudo chown -R $(whoami) ~/.npm
    sudo chown -R $(whoami) /usr/local/lib/node_modules
  • VS Code 使用内置 TypeScript
    点击右下角的 {} 图标,选择 使用工作区版本的 TypeScript


总结

  1. 确保 Node.js 和 npm 正常 (推荐 nvm 管理)。
  2. 全局安装 TypeScriptnpm install -g typescript)。
  3. 检查 PATH 是否包含 npm 全局路径 (修改 ~/.zshrc)。
  4. 让 VS Code 从终端启动 (使用 code 命令)。

这样基本就能解决 tsc 失效的问题了。如果还是不行,可以检查 Shell 配置(~/.zshrc~/.bash_profile)或者重新安装 Node.js。

希望这篇记录能帮到你!🚀

相关推荐
kaiyuanheshang1 个月前
关于VScode的调试
ide·vscode·编辑器·debug·调试
摸爬滚打的小李2 个月前
关于禁用 javaScript
debug
用户10096818580852 个月前
Spring Boot单元测试报错:java.lang.IllegalStateException
debug
爱睡觉的咋2 个月前
error: RPC failed; HTTP 408 curl 22 The requested URL returned error: 408
python·debug
GuokLiu2 个月前
250405-VSCode编辑launch.json实现Debug调试Open-WebUI
vscode·debug·open-webui
啊波次得饿佛哥2 个月前
C# debug和release模式问题
visualstudio·debug·release
千里马学框架2 个月前
android studio调试aosp手机userdebug版本无法查看局部变量和参数问题如何解决?
android·智能手机·车载系统·android studio·debug·调试·系统开发
ssshooter3 个月前
浏览器 67 个实用 Debug 技巧
前端·javascript·debug
|Ringleader|3 个月前
【Unity Bug 随记】使用Rider debug功能时Unity Reload Domain卡死问题
unity·bug·debug·rider·reload domain