让 ES6 在 WebStorm 中工作

Getting ES6 to work in WebStorm

关于如何在 WebStorm 10 上使用 ES6 有什么想法吗?

这是我目前所做的:

  1. 已安装 Babel。
  2. 通过设置 > 工具 > 文件观察器激活 Babel。选中 Babel 复选框。
  3. 编辑配置 > 启动文件观察器之前 > + 然后“运行 文件观察器”。
  4. 将代码设置为 ES6
  5. 更改了我的 运行 配置以使用编译版本。

然后创建了以下简单的代码:

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

这段代码没有语法错误,它应该如此。 (确保 ES6 开启的便捷方式)。

运行 它(运行 实际上是编译后的版本),得到这个....

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

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

require("babel/register");

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

"require hook" 仅对注册后需要的文件起作用,对注册挂钩本身的文件不起作用。

所以这有效:

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

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

Babel 的 require 钩子需要你有 BABEL_CACHE_PATH 环境变量。您可能还需要在 WebStorm 的文件观察器配置中指定它们。

我认为根据您所描述的错误的性质,您可能需要做两件事才能使其正常工作。

  1. npm install babel-core
  2. 添加 --optional runtime 作为调用 babel
  3. 的参数

这基于here 的详细描述。