You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MacOS下Sublime TypeScript构建系统报错:env: node: No such file or directory

问题描述

我尝试在Sublime Text中配置TypeScript构建系统,配置内容如下:

{
    "cmd": ["/Users/userName/.nvm/versions/node/v18.13.0/bin/ts-node","$file"],
    "selector": "source.ts"
}

但运行时出现错误:

env: node: No such file or directory
[Finished in 9ms with exit code 127]
[cmd: ['/Users/alex/.nvm/versions/node/v18.13.0/bin/ts-node', '/Users/alex/Desktop/temp.ts']]
[dir: /Users/alex/Desktop]
[path: /opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin]

几乎相同配置的JavaScript构建系统却能正常运行:

{
    "cmd": ["/Users/userName/.nvm/versions/node/v18.13.0/bin/node", "$file"],
    "selector": "source.js"
}

终端执行which ts-node输出:

/Users/userName/.nvm/versions/node/v18.13.0/bin/ts-node

手动在终端运行/Users/userName/.nvm/versions/node/v18.13.0/bin/ts-node /Users/userName/Desktop/temp.ts也能正常工作。

问题分析与解决办法

问题原因

ts-node本质是基于Node.js的脚本,启动时会默认调用系统环境中的node命令,但Sublime Text的构建环境PATH里没有包含nvm管理的Node.js路径(从错误信息的path字段可确认这一点)。而直接调用Node.js二进制文件时,因为指定了绝对路径,无需依赖环境变量,所以能正常运行。

解决方法

方法1:给构建配置添加Node环境路径

在TypeScript构建配置中通过env字段,将nvm的Node路径加入到环境变量的PATH中:

{
    "cmd": ["/Users/userName/.nvm/versions/node/v18.13.0/bin/ts-node","$file"],
    "selector": "source.ts",
    "env": {
        "PATH": "/Users/userName/.nvm/versions/node/v18.13.0/bin:$PATH"
    }
}

方法2:指定ts-node使用的Node路径

通过--node-path参数直接告诉ts-node要使用的Node.js二进制文件绝对路径:

{
    "cmd": ["/Users/userName/.nvm/versions/node/v18.13.0/bin/ts-node", "--node-path", "/Users/userName/.nvm/versions/node/v18.13.0/bin/node", "$file"],
    "selector": "source.ts"
}

方法3:启用shell模式运行命令

开启shell: true,让Sublime Text使用终端的shell环境执行命令,从而继承nvm的环境配置:

{
    "cmd": ["/Users/userName/.nvm/versions/node/v18.13.0/bin/ts-node", "$file"],
    "selector": "source.ts",
    "shell": true
}

内容的提问来源于stack exchange,提问作者Alex Berk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 03:30:46