webstrom配置babel一直报错

首先在webstorm的file watcher中添加babel,配置如下:

之后在src目录下建立一个JS文件,报如下错误:

21:13:02 An exception occurred while executing watcher 'Babel'. Watcher has been disabled. Fix it.: Cannot run program "cmd.exe" (in directory "D:\WebStorm_workspace\Study-ES6\src\static"): CreateProcess error=2, 系统找不到指定的文件。

而在命令行进行babel操作都是可以的,如下图:

请问这是为什么?

另外这里还有一个问题,我的babel-preset-es2015和babel-cli都没有进行全局安装(为了可移植性),都是安装在项目根目录下的,这样造成了一个问题,因为要进行命令行操作,我直接在项目目录下是不行的,因为根本就没有babel.cmd这个文件,所以我把node_modules/.bin目录下的babel.cmd文件复制了一份到项目根目录下,并将里面的"%~dp0\..\babel-cli\bin\babel.js" %*改为了"%~dp0\node_modules\babel-cli\bin\babel.js" %*,这样才能确保在项目根目录下能执行babel命令,如果不这样,那么我要切换到node_modules/.bin目录下才能执行babel命令。我总感觉这里怪怪的,是不是姿势没对,还望大家指点指点

另附项目结构如下:

阅读 10.1k
1 个回答

-------------------------------------------来结贴了--------------------------------------

翻遍了google,在webstorm的官方论坛里也搜索遍了,都没有找到答案,最后是这么解决的:

因为我们知道,webstorm他也是用命令行去执行babel命令,之前我发现webstorm的terminal打开会报错,但是没有太注意,我只是把这个错误记录了下来,放到浏览器里面开了一个google标签页,就没有管了,因为一直在想babel的问题,心想之后再来解决(其实是因为我先大概搜索了一下没有找到答案)。

在2,3个小时的搜索无解后,我开始想,应该和这个有很大的关系,于是继续搜索,还是无解,想着直接提issue了,但是回复可能要等几天,突然发现,我的webstorm是2016.1版本,他一直提示我更新,会不会和这个有关系,于是乎立马更新,然后破解,打开了发现terminal正常了。。。

然后操作和以前完全一模一样,这次babel就能用了,这也印证了之前的结论,"webstorm他也是用命令行去执行babel命令",所以你必须确保它的terminal能正常使用。OK,忙活了2,3个小时也算是解决了问题,没有白费。附上截图已示正确:

而且其实之前的报错说得很明白了,"Cannot run program "cmd.exe",其实就是在提示找不到命令行终端,可是当时我以为他这里的cmd指的是babel.cmd。。。,现在想想真是坑

另外在解决过程中我发现网上大部分配置文章都是你抄我我抄你,这里贴下官方的说明吧。

webstorm配置babel步骤及参数

webstorm的terminal如何配置

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏