巴别塔似乎不起作用

Babel doesn't seem to work

我在 WebStorm 2016.2.2、Node.js 6.6.0 和 TypeScript 1.8 中构建了一个项目。

由于某些原因,这里指定:,我需要使用 Babel。

我已经安装了 Babel 和 babel-preset-es2015,并且添加了一个文件观察器,但我仍然收到 "unexpected token import" 错误。 babel 好像不行

1) 我是否需要采取额外的操作才能将我的 js 文件转换为 ES5?

2) 我应该在 WebStorm 设置中将 "JavaScript language version" 设置为哪个版本的 ES?

3) Babel 是否应该像 TypeScript 编译器那样生成另一个具有输出的文件?

任何帮助将不胜感激!

1) 在项目根目录下创建一个名为.babelrc的文件,内容如下:

{
  "presets": ["es2015"]
}

安装es6预设是不够的,你必须告诉babel使用那个预设。供参考:https://babeljs.io/docs/plugins/preset-es2015/

2) 尝试设置 ECMAScript6

以下是适合我的 Babel 文件观察器设置:

Arguments: $FilePathRelativeToProjectRoot$ --out-dir $ProjectFileDir$/dist --source-maps  --presets es2015
Working directory: $ProjectFileDir$
Output Paths to Refresh: $ProjectFileDir$/dist/$FileDirRelativeToProjectRoot$/$FileNameWithoutExtension$.js:$ProjectFileDir$/dist/$FileDirRelativeToProjectRoot$/$FileNameWithoutExtension$.js.map

它将文件编译到单独的目录,保留原始文件名,以便require()工作;此外,WebStorm 知道生成的文件,因为编译完成后文件系统会正确刷新

不要将 babel-preset-es2015 用于 Node.js 6。这会将你的源代码转换为 ES5,而你已经有 97% 的本地 ES6 支持,导致严重的性能损失。仅仅添加它也不能启用模块转换。

使用 babel-preset-node6 preset or just add the transform-es2015-modules-commonjs 插件。