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

如何让ts-node持续运行?原node-windows服务方案无法兼容

解决TypeScript项目通过ts-node作为Windows服务持续运行的方案

方案一:编译TypeScript为JavaScript后使用node-windows

  • 确认tsconfig.json配置正确,比如设置outDir指定编译输出目录(例如"outDir": "./dist")
  • 执行编译命令将TS文件转为JS:tsc
  • 修改node-windows的服务配置,将启动脚本指向编译后的入口文件(比如dist/index.js)
  • 可选优化:开发阶段用tsc --watch监听文件变化自动编译,同时在node-windows配置中添加文件变更触发服务重启的逻辑,或搭配nodemon实现热重载

方案二:让node-windows直接调用ts-node启动

  • 若全局安装了ts-node,找到其可执行文件路径(通常为C:\Users\<你的用户名>\AppData\Roaming\npm\ts-node.cmd);若为项目本地安装,路径在项目根目录/node_modules/.bin/ts-node.cmd
  • 在node-windows服务配置中,将script指向ts-node的cmd文件,把TS入口文件作为参数传入,示例代码:
const Service = require('node-windows').Service;

const svc = new Service({
  name: '你的服务名称',
  description: '服务功能描述',
  script: 'C:\\Users\\<用户名>\\AppData\\Roaming\\npm\\ts-node.cmd',
  args: ['C:\\项目路径\\index.ts'] // 替换为你的TS入口文件绝对路径
});

svc.on('install', () => {
  svc.start();
});

svc.install();

方案三:使用PM2管理并注册为Windows服务

  • 全局安装PM2:npm install pm2 -g
  • 用PM2启动ts-node应用:pm2 start index.ts --interpreter ts-node
  • 安装PM2的Windows服务插件:npm install pm2-windows-service -g
  • 将PM2注册为Windows服务:pm2-windows-service install
  • 后续可通过PM2命令管理应用,比如pm2 restart <应用名>查看日志、pm2 logs查看运行日志

内容的提问来源于stack exchange,提问作者Pascal S

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 21:15:35