Nodemon + babel多次重启服务器

Jon*_*sen 9 babel node.js nodemon babel-node

在我的package.json中,我有一个启动脚本,我正用于我的开发环境.它看起来像这样:

"scripts": {
    "dev": "NODE_PATH=src nodemon --watch src/ --exec babel-node src/app.js"
}
Run Code Online (Sandbox Code Playgroud)

当我击中npm run dev一切时,一切正常,巴贝尔正在发现应有的一切,并且nodemon开始观看.我看到了这个:

[nodemon] 1.11.0
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: /Users/Jonathan/Documents/swissnet/src/**/*
[nodemon] starting `babel-node src/app.js`
Run Code Online (Sandbox Code Playgroud)

当我在src/-folder节点中保存文件时,将重新启动服务器.但这是我的问题,它重启2-3次......每次我保存一个文件,它看起来像这样:

[nodemon] restarting due to changes...
[nodemon] starting `babel-node src/app.js`
[nodemon] restarting due to changes...
[nodemon] starting `babel-node src/app.js`
[nodemon] restarting due to changes...
[nodemon] starting `babel-node src/app.js`
Run Code Online (Sandbox Code Playgroud)

如果我输入"rs",那么nodemon会按预期重启一次.

我不知道如何解决这个问题,甚至不知道在哪里寻找答案.我试过去谷歌吧.我一直在访问github上的软件包的bug部分...(也许我只是在google搜索).
这是我为同一个问题找到的唯一链接,但它似乎没有答案:Nodemon在使用babel时多次运行保存.
无论如何我尝试了他的脚本,NODE_PATH=src nodemon src --exec babel -w src/ --out-dir build/ --source-maps但同样的事情发生了,重启两次或三次.

就像@Connorelsea在上面链接中提供的答案的评论部分所说,如果我添加--delay 2.5它只重启一次.

我想也许当我在观察文件中点击保存时,nodemon立即重启并且babel开始转换.当babel完成时,由于对src/-folder进行了更改,因此节省了一堆om转换文件并且nodemon再次重启.但我不知道如何调试这个.

希望你们能帮助我!

****编辑****

刚刚找到这个https://github.com/remy/nodemon/issues/508,但他们唯一的解决方案就是"升级nodemon".我确实有最新的1.11.0.

Jon*_*sen 12

所以,现在几个月后我发现了什么是错的.似乎服务器只是在我保存时重新启动一次,并且当babel在文件更新后几秒钟后转换代码时再次重启.因此,包裹babel-node给了我这种不受欢迎的行为.它可以nodemon延迟2秒--delay 2或更长时间.


chu*_*yik 6

您应该babel-node像这样使用执行器:

nodemon ./index.js --exec babel-node
Run Code Online (Sandbox Code Playgroud)


Amo*_*s47 5

所以万一有人像我一样偶然发现了这件事.

虽然延迟有效,但它的工作原理是因为你的构建通常不到2秒.

这可能会导致它变得松散,或者只是需要更长的时间.

正确的解决方案是实际忽略输出目录或nodemon中的文件.

NODE_PATH=src nodemon --watch src/ --exec babel-node src/app.js --out-file dist/app.js -- dist/app.js