使用 babel 时 Nodemon 在保存时运行多次

2023-12-26

我正在使用 Nodemon 和 Babel 6。我已经全局卸载了 Nodemon 并安装了最新版本。

我在我的 npm 脚本中尝试了以下两行:

"watch-new": "nodemon src/index.js --exec babel-node"

And

"watch-new": "nodemon src/index.js --exec babel -w src/ -d build/ --source-maps"

运行 babel 的变化似乎会导致类似/相同的 nodemon 相关混乱。

我从一个仅包含以下内容的文件开始console.log("Hello, World!");然后在该语句后添加一行,其中包含console.log("Test");。保存(仅一次)现在的两行文件会产生以下控制台输出。

将以下任一内容添加到 nodemon 使我的程序仅重新启动一次“--delay 2.5”或“-L”/“--legacyWatch”

为什么它运行并重新加载这么多次?


我发现组合nodemon, babel,和其他观察者类型的程序通常可以奇怪地交互。这种“双跑”结果很常见。设置后效果很好just so,但可能很脆弱。

也就是说,我不明白您对命令行参数的选择。我不会说它们是错的,但它们与版本不对应babel我已安装的文件或我正在使用的文档。运行 Babel 的推荐方式发生了显着变化;并非互联网上的所有文档都是最新的且符合最新方法。

因此,与其尝试调试您的配置中不起作用的内容,不如让我给您一个配置is为我工作。

首先我安装了 Babel 及其预设:

npm install --save-dev babel-cli babel-preset-es2015

然后npm脚本在package.json:

"watch-new": "nodemon src --exec babel --presets es2015 -w src/ --out-dir build/ --source-maps"

(你可以使用其他预设。我只使用大的,ES2015 https://www.npmjs.com/package/babel-preset-es2015.)

我调用nodemon针对源目录,而不是单个源文件,在其他中保留babel来自嵌套src under build;我假设你想要个人.js文件在build, not a src子目录。我也用--out-dir选项,我认为这是正确的(不是-d).

最后,运行它:

npm run watch-new

这些包和脚本调用为我提供了正确的、每次更改重新运行一次的行为。如果你想node转换后立即运行代码而不是将其保存在build/, 你可以改变--exec babel to --exec babel-node并删除--out-dir规格。

最后一点,您的问题已标记为 ECMAscript-6。曾经叫什么es6现在更正式地称为es2015。 (参见例如关于新版本名称的入门知识 http://benmccormick.org/2015/09/14/es5-es6-es2016-es-next-whats-going-on-with-javascript-versioning/.) 如果您在新的搜索条件下搜索,您更有可能获得正确的、最新的文档es2015 term.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 babel 时 Nodemon 在保存时运行多次 的相关文章

随机推荐