Node.js+TypeScript项目中console.log日志无法显示的解决求助
解决TS项目中server.ts日志不显示及--inspect参数报错问题
排查基础问题:确认server.ts被正确执行
首先检查你的src/index.ts是否正确导入并执行了server.ts,比如是否有类似这样的代码:
// src/index.ts(ES模块规范) import './server.ts'; // 或者CommonJS规范 require('./server.ts');
如果没有导入,server.ts的代码根本不会运行,自然不会输出日志。这是最容易忽略的核心问题。
修复nodemon命令的参数传递问题
你添加--inspect报错是因为参数传给了nodemon,但nodemon本身不识别这个参数,需要把调试参数传给ts-node(底层调用node)。修改dev脚本格式:
"dev": "nodemon --watch \"./src/**/*.ts\" --exec \"ts-node --inspect\" ./src/index.ts"
注意:--inspect要放在ts-node后面,而非nodemon后面,确保参数被传递给node进程,避免报错。
升级依赖版本(解决兼容性问题)
你当前使用的ts-node@8.10.2和typescript@3.7.2版本过于老旧,可能存在日志输出或调试的兼容性问题。建议升级到稳定新版本:
- 执行升级命令:
npm install ts-node@latest typescript@latest --save-dev
- 更新后重新运行
npm run dev,查看日志是否正常输出。
替代方案:使用ts-node-dev
如果上述方法仍不生效,可以用ts-node-dev替代nodemon+ts-node,它专为TS开发设计,内置热重载和日志输出支持,配置更简洁:
- 安装依赖:
npm install ts-node-dev --save-dev
- 修改package.json的scripts:
"scripts": { "start": "ts-node ./src/index.ts", "dev": "ts-node-dev --respawn --transpile-only ./src/index.ts" }
--respawn会在文件修改时自动重启进程,--transpile-only加快编译速度。若需要调试,直接添加--inspect参数即可:
"dev": "ts-node-dev --respawn --transpile-only --inspect ./src/index.ts"
内容的提问来源于stack exchange,提问作者FreddicMatters
相关产品推荐
相关产品推荐

