Notepad++ 无法直接运行 TypeScript,需通过 Node.js 调用 tsc 编译后执行或全局安装 ts-node 并配置 PATH;若报“不是内部或外部命令”,主因是 npm 全局 bin 路径未加入系统 PATH,须手动添加并重启 Notepad++。

Notepad++ 本身不支持直接运行 TypeScript,必须通过 Node.js 调用 tsc 编译后再执行,或借助 ts-node 直接运行——但后者要求全局安装且路径已纳入系统 PATH;否则脚本会报错 'ts-node' is not recognized。
为什么 ts-node "$(FULL_CURRENT_PATH)" 报错“不是内部或外部命令”
这不是 Notepad++ 的问题,而是 Windows 找不到 ts-node 可执行文件。Node.js 全局 bin 目录(如 C:\Users\XXX\AppData\Roaming\npm)未加入系统环境变量 PATH 是最常见原因。
- 在 CMD 中执行
where ts-node,若无输出,说明没装或路径没生效 - 确认已全局安装:
npm install -g ts-node typescript - 手动把 npm 全局 bin 路径加进系统
PATH,然后彻底退出 Notepad++ 进程(任务管理器里杀掉所有 notepad++.exe)再重开 - 别依赖
node $(FILE_NAME)去跑 .ts 文件——Node.js 原生不解析 TypeScript
tsc 编译 + node 运行的 NppExec 脚本写法
适合不想装全局 ts-node、或项目需严格控制 TS 版本的场景。关键点是编译后自动执行生成的 JS,且避免路径空格/中文导致失败。
ZenHeart zenlink 与 zenlink-mcp 为 OpenClaw,涵盖安装、MCP 注册、钩子接线、入站轮询及升级维护。
- 脚本内容(复制进 NppExec 对话框):
cd "$(CURRENT_DIRECTORY)" tsc "$(FILE_NAME)" --outDir ./dist --target ES2020 --module commonjs if exist "dist\$(NAME_PART).js" node "dist\$(NAME_PART).js"
-
--outDir ./dist指定输出目录,避免污染源码目录;$(NAME_PART)提取文件名不含扩展,比硬编码更安全 - Windows 下
if exist判断生成文件是否存在,防止tsc编译失败后仍尝试node - 若项目有
tsconfig.json,可简化为tsc(不带参数),但需确保配置里包含outDir和rootDir
快捷键绑定与输出窗口可见性问题
NppExec 默认不聚焦控制台,执行后看似“没反应”,其实是输出被藏在后台了。
- 不要用默认 F5:它绑定的是旧版“运行”菜单逻辑,不走 NppExec
- 进
Settings → Shortcut Mapper → Plugin Commands,找到NppExec: Execute,绑定新快捷键(如Ctrl+Shift+T) - 执行后若没看到输出,手动点
Plugins → NppExec → Show Console唤出窗口 - 脚本末尾加
pause(Windows)或read -p "Press enter..."(WSL),防窗口闪退
最易忽略的是:TypeScript 编译错误不会中断 node 执行,除非你显式检查 tsc 退出码(%ERRORLEVEL%);而 ts-node 虽方便,但会绕过类型检查直接运行——调试阶段反而掩盖问题。

















