让ES6在WebStorm中工作

时间:2015-06-18 17:20:14

标签: javascript webstorm

有关如何在WebStorm 10上使用ES6的任何想法?

这是我到目前为止所做的:

  1. 已安装的巴别塔。
  2. 使用设置激活的通知符>工具>文件观察者。选中Babel复选框。
  3. 修改配置>在启动文件观察者之前> +然后'运行文件监视器'。
  4. 将代码设置为ES6
  5. 更改了我的运行配置以使用已编译的版本。
  6. 然后创建了以下一些简单的代码:

    require("babel/register");
    function* count(n){
        console.log(n);
    }
    

    此代码显示没有语法错误,应该如此。 (确保打开ES6的便捷方法)。

    运行它(实际上运行已编译的版本),并获得此....

    var marked0$0 = [count].map(regeneratorRuntime.mark);
                                ^
    ReferenceError: regeneratorRuntime is not defined
    

    为什么呢?如何让它与Babel预编译然后运行?是不是应该用这条线来处理再生器:

    require("babel/register");
    

    (Windows 7,如果这很重要)。

3 个答案:

答案 0 :(得分:2)

Babel的require hook要求您拥有BABEL_CACHE_PATH环境变量。您可能还需要在WebStorm的File Watcher配置中指定它们。

答案 1 :(得分:1)

"需要钩子"仅适用于注册后需要的文件,但不适用于注册钩子本身的文件。

这样可行:

// index.js
require('babel/register');
require('./count');

// count.js
function* count(n){
  console.log(n);
};

答案 2 :(得分:1)

我认为根据您所描述的错误的性质,您可能需要做两件事才能让它发挥作用。

  1. npm install babel-core
  2. 添加--optional runtime作为调用babel的参数
  3. 这是基于详细描述的内容here