巴别似乎没有工作
我有一个项目内置WebStorm 2016.2.2,Node.js 6.6.0和TypeScript 1.8。
由于某些原因,在这里指定: Node.js不支持ES6导入和导出 ,我需要使用Babel。
我已经安装了Babel和babel-preset-es2015,并添加了一个文件监视器,但是我仍然收到“意外令牌导入”错误。 它看起来像巴贝尔不起作用。
1)我需要采取额外的行动,以便将我的js文件转换为ES5吗?
2)我应该在“WebStorm设置”中将“JavaScript语言版本”设置为什么版本?
3)Babel是否应该像TypeScript编译器那样用输出生成另一个文件?
任何帮助将深深感激!
这里是适用于我的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也知道生成的文件,因为一旦编译完成,文件系统就会被正确刷新
1)在项目的根目录下创build一个名为.babelrc
的文件,内容如下:
{ "presets": ["es2015"] }
安装es6预设是不够的,你必须告诉babel使用该预设。 供参考: https : //babeljs.io/docs/plugins/preset-es2015/
2)尝试设置ECMAScript6
不要为Node.js 6使用babel-preset-es2015
。 这会将您的源代码转换为ES5,而您原本已经有97%的ES6支持,从而导致严重的性能损失。 仅仅添加它也不能启用模块转换。
使用babel-preset-node6
预设或只添加transform-es2015-modules-commonjs
插件。