如何阻止VS Code在nodemon重启本地服务器时自动切换至浏览器
我之前也碰到过这个一模一样的烦人事儿!每次改完代码刚进入状态,浏览器突然跳出来打断思路,效率直接掉一半。给你分享几个亲测有效的解决方法:
1. 检查nodemon启动脚本,移除自动打开浏览器的参数
最常见的原因是你的启动命令里加了自动打开浏览器的参数。打开项目根目录的package.json,找到scripts里的启动命令,比如:
"scripts": { "start": "nodemon app.js --open" }
把后面的--open删掉就行,修改后变成:
"scripts": { "start": "nodemon app.js" }
如果你的启动命令里是用&& open http://localhost:xxxx这种方式手动打开浏览器,也要把这部分去掉。
2. 修改VS Code调试配置(launch.json)
如果你是通过VS Code的调试功能启动nodemon,可能调试配置里设置了服务器就绪后自动打开浏览器。按Cmd+Shift+D打开调试面板,点击右上角的齿轮图标打开launch.json,找到serverReadyAction配置块:
"serverReadyAction": { "action": "openExternally", "pattern": "Server running on port (\\d+)" }
把action的值改成"none",或者直接删除整个serverReadyAction节点,这样服务器重启时就不会触发浏览器打开了。
3. 检查相关插件的自动打开设置
如果你安装了类似Live Server、Browser Sync这类和浏览器联动的插件,它们可能和nodemon的重启事件关联了。打开VS Code的插件面板(Cmd+Shift+X),找到对应的插件,进入它的设置页面,取消勾选类似Automatically open browser(自动打开浏览器)的选项。
4. 检查nodemon的全局配置文件
如果上面的方法都没用,可能是nodemon的全局配置在搞鬼。你可以在终端执行nodemon --config查看当前配置路径,打开对应的nodemon.json文件,检查里面有没有exec字段包含打开浏览器的命令,比如:
{ "exec": "node app.js && open http://localhost:3000" }
把后面的&& open http://localhost:3000删掉即可。
一般来说,前两个方法就能解决大部分问题了,你可以按顺序排查试试!
内容的提问来源于stack exchange,提问作者flipperEvans

