PhpStorm需通过Node.js运行配置集成nodemon实现自动重启:Program字段填nodemon,Application parameters填入口文件及--config nodemon.json等参数,并配--inspect支持调试。

PhpStorm 本身不自带自动重启 Node 服务的功能,但能无缝集成 nodemon 实现「改完保存 → 自动重启」。关键不是靠 IDE 内置机制,而是把 nodemon 当作一个可执行命令接入运行配置 —— 这样既保留调试能力,又获得热重载体验。
怎么在 PhpStorm 中正确配置 nodemon 启动项
不能直接把 nodemon 填进「Node interpreter」字段,那是给 Node.js 解释器用的;真正要改的是「Program」字段。
- 打开 Run → Edit Configurations…
- 新增一个 Node.js 类型配置(不是 npm)
- 在 Node interpreter 选你项目实际用的 Node 版本(如
/usr/local/bin/node或通过 nvm 管理的路径) -
Program 字段填
nodemon(必须已安装在该 Node 环境下,推荐本地安装:npm install nodemon --save-dev) -
Application parameters 填你的入口文件,比如
src/app.js - 勾选 Allow parallel run(避免重复启动报端口占用)
这样配置后,点击 ▶️ 运行,PhpStorm 实际执行的是 nodemon src/app.js,而不是 node src/app.js。
为什么 nodemon 在 PhpStorm 里没反应?常见断点位置
最常卡在两个地方:路径解析错、nodemon 找不到或版本冲突。
立即学习“PHP免费学习笔记(深入)”;
生成Blender Python (bpy)脚本,该脚本使用node_groups API和GeometryNodeTree接口程序化地创建几何节点修改器树,用于参数化3D资产生成。
-
nodemon没装在当前项目 node_modules 下:全局安装的nodemon可能被 PhpStorm 忽略(尤其用了 nvm 或 pnpm),务必用npm install nodemon --save-dev本地装 - 「Working directory」没设对:默认是项目根目录,但如果入口文件在
dist/index.js,而你监听的是src/,就得手动设成项目根目录,否则nodemon不知道从哪开始 watch - 终端输出被吞掉:如果看不到
[nodemon] restarting due to changes...,检查 Logs 标签页是否启用了「Show console when stdout/stderr is printed」 - 文件编码或换行符导致变更未触发:Windows 编辑器保存时用 CRLF,Linux/macOS 下
nodemon有时不敏感,建议统一用 LF
如何让 nodemon 监听 ts、json、env 文件并生效
默认只监听 .js,加配置才能响应其他类型变更。
- 在项目根目录新建
nodemon.json,内容如下:
{
"watch": ["src/**/*", ".env", "config/*.json"],
"ext": "js,json,ts",
"ignore": ["node_modules/**", "dist/**", "**/*.test.js"]
}然后把「Application parameters」改成:--config nodemon.json src/app.js
- 注意:
--config参数必须放在nodemon后、入口文件前,顺序错了会报unknown option - 如果用 TypeScript,确保
tsc --watch或ts-node已就位,nodemon本身不编译 TS -
.env文件变更不会触发重启,除非你显式加进watch数组 —— 因为它不被默认扩展名覆盖
调试时还能用断点吗?和 nodemon 兼容吗
可以,但得关掉 nodemon 的 fork 模式,否则调试器连不上子进程。
- 在
nodemon.json加上:"execMap": {"js": "node --inspect"} - 或者直接在「Application parameters」里写:
--inspect=9229 -- src/app.js - 然后在 PhpStorm 里新增一个 Node.js Remote Debug 配置,端口填
9229,启动后再点 ▶️ 调试 - 别用
--exec ts-node配合调试:ts-node 的 --inspect 支持不稳定,容易断连,优先走编译后调试
真正容易被忽略的,是 nodemon 默认用 spawn 启动子进程,而 PhpStorm 的调试器只 attach 到主进程 —— 必须显式传 --inspect 并配对 Remote Debug,否则断点永远不生效。

















