解决 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。

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

相关推荐
REDcker3 天前
Android HWASan 详解:硬件标记原理、Clang 启用与排障实践
android·linux·debug·编译·clang·asan·hwasan
冬奇Lab17 天前
烧了数千美金 Token,我用 AI Agent 打通了企业级 Bug 修复全流程
人工智能·debug
Watink Cpper25 天前
Ubuntu24.04网络图标消失导致无法上网--排查得到原因:内核和驱动版本不匹配
运维·网络·linux内核·运维开发·debug·ubuntu24.04
ListenAlone1 个月前
Visual Studio 2017 调试长时间未响应问题排查
debug·vs2017
G果1 个月前
ros2工程 debug(vscode)
c++·ide·vscode·编辑器·bug·debug·ros2
蜡台2 个月前
VSCode 配置PHP开发环境
ide·vscode·php·debug·launch.json
爱吃的小肥羊2 个月前
Claude Code新功能:帮你找bug,但每次要收你20美元!
debug
MrBread3 个月前
微任务链式派生阻塞渲染
前端·debug
冬奇Lab3 个月前
应用异常退出实战分析:一次"幽灵杀手"引发的车载系统故障排查
android·性能优化·debug
yuki_uix3 个月前
为什么我的 Auth Token 藏在了 Network 面板的 Doc 里?
前端·python·debug