我发现组合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.