巴别塔似乎不起作用
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
插件。
我在 WebStorm 2016.2.2、Node.js 6.6.0 和 TypeScript 1.8 中构建了一个项目。
由于某些原因,这里指定:
我已经安装了 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
插件。