网上有不少关于如何设置babel的。我学习着设置,但总差那么几步,没能知足个人需求。node
我使用的是webStorm2017.1版本。es6
使用webStorm自带的filewatcher中的babel自动编译前,须要安装一些babel库web
npm install -g babel-cli npm
网上有些教程让全局安装babel,实际上新的babel已经集成在babel-cli里面了。 另外.json
网上有部分教程是项目安装babel-cli的。 npm install babel-cli --save-dev 项目安装也是能够的,不过在filewatcher的babel设置里,要在program里选择项目里的babel地址。babel
npm install --save-dev babel-preset-envwebstorm
网上不少教程要求安装babel-preset-es2015,在实际编译时,使用webStorm的默认设置,编译是不成功的。 env这个包,会根据es6的运行环境去编译js,而无序指定哪一个具体的es版本。学习
在项目根目录下,也就是package.json同目录下,建立.babelrc文件。【该文件非必须】orm
不少网上教程推荐里面内容为:{"presets":["es2015"]} 。这里的内容,须要根据本身的须要设置。webstorm的默认设置里,实际上是不须要网上的这个推荐内容了。blog
经过.babelrc,能够实现更多功能。
file - setting - languages & frameworks - Javascript
在右侧的框中,选择ECMAScript6
webstorm 里的路径: file - setting - tools - File Watcher,
从图中右侧的+号里打开新窗口,选中babel,在图中间就会出现Bebel了。
双击上图的Babel,会进入babel设置界面。
在这个界面里,须要设置的地方有三个,Program,Arguments, Output paths to refresh
这里的设置很重要,网上的教程,基本没有对这三个进行详细介绍的。
Program 若是是全局安装babel-cli的,这里默认就行了。若是是项目安装的,就要右边的...到项目的node_modules文件夹中,找到.bin文件夹下面的babel文件,点ok就能够了
Arguments 默认为: $FilePathRelativeToProjectRoot$ --out-dir dist --source-maps --presets env
Output paths to refresh 默认为:dist\$FileDirRelativeToProjectRoot$\$FileNameWithoutExtension$.js:dist\$FileDirRelativeToProjectRoot$\$FileNameWithoutExtension$.js.map
运行编译后的结果是这样的。
dist目录不必定是咱们想要的目录。咱们想把编译后的文件都放在js目录下,因而就将Arguments里的dist改为了js。 结果编译后的文件却像下图这样,不断嵌套。
要解决这个不断嵌套的问题,就须要把Output paths to refresh 中的dist,一样该为js,就不会出现这种嵌套编译了。
个人目标要编译成这种结构的js
个人设置为: 这样就可让编译后的文件和原文件在同一个文件夹下
Arguments:
$FilePathRelativeToProjectRoot$ --out-file $FileDir$\$FileNameWithoutExtension$-compile.js --source-maps --presets env
Output paths to refresh:
$FileDir$\$FileNameWithoutExtension$-compile.js:$FileDir$\$FileNameWithoutExtension$-compile.js.map