V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Chanran
V2EX  ›  Node.js

nodemon 监听 node 服务,有个打开浏览器的动作,导致每次都打开浏览器新标签.只想打开一次

  •  
  •   Chanran · 2016-10-21 10:50:51 +08:00 · 3921 次点击
    这是一个创建于 2737 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我在用 nodemon 来 watch node 服务,代码里调用了自动在浏览器打开项目的方法,导致每次 ctrl+s 的时候都打开新标签页

    我想到的解决办法:

    1. watch node 服务的时候不打开新的浏览器标签页;(这不是我想要的)
    2. 在服务外设置一个标志,以表示是第几次启动服务;(可行,但是不太合理)
    3. 监听进程(好像行不通,因为 pm2 每次都重启了 node 服务,进程都没了)
    4. 监听浏览器子进程(太复杂)

    求解决方法(在公司里有个构建工具是可以实现的,但是现在看不到源码了,只能求助)

    回归正题:这是我提交给 node-open 作者的 issue

    作者好像不鸟我们,求帮忙解决一下

    7 条回复    2016-10-22 10:57:01 +08:00
    4641585
        1
    4641585  
       2016-10-21 11:23:34 +08:00
    如何判断这次保存时你是想打开新标签页还是不想打开新标签页?
    Chanran
        2
    Chanran  
    OP
       2016-10-21 11:28:24 +08:00
    @4641585 不想打开新标签页.也就是说,第一次用 nodemon 启动 node 服务的时候打开,然后 ctrl+s 的时候不要打开新的标签页了,只启动 node 服务
    jinwyp
        3
    jinwyp  
       2016-10-21 13:14:06 +08:00
    直接用 nodemon 不就好了吗? nodemon app.js
    4641585
        4
    4641585  
       2016-10-21 14:03:44 +08:00
    @Chanran

    我有个不成熟的想法不知道适不适合:

    1 、使用 pre- 钩子来打开标签页
    2 、源代码当中打开浏览器的动作改成刷新页面

    "scripts": {
    "predev": open xxx,
    "dev": "nodemon app.js"
    }

    这样 npm run dev 的时候先打开了标签页,然后运行代码时刷新页面,每次进行保存也只是触发刷新页面的动作。
    ETiV
        5
    ETiV  
       2016-10-21 14:36:38 +08:00 via iPhone
    网页上在调用 window.open 的时候接受一个 target (就是 a 的 target 属性)

    如果前后两次调用传入了同一个名字,就会在相同的网页标签下打开。

    不知道 Chrome 、 Firefox 等等浏览器是否支持命令行传入这个参数,支持的话这个问题就好办了
    Chanran
        6
    Chanran  
    OP
       2016-10-22 10:53:40 +08:00
    @jinwyp 你用一下 open 这个 npm 依赖就知道了,nodemon app.js, app.js 里有一段代码是打开浏览器标签页,nodemon 每次启动 app.js,都会触发这个动作....那就无解了
    Chanran
        7
    Chanran  
    OP
       2016-10-22 10:57:01 +08:00
    @4641585 额,这就是比手动在浏览器打开标签好了一点.但是这里面也有个问题,我是 open('http://'+IP+':'+PORT)这样打开的...所以在 package.json 写不好...
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4012 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 05:14 · PVG 13:14 · LAX 22:14 · JFK 01:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.