javascript的编译工具,可以把一种形式的js转换成另一种形式的js,如能将es6的js编译成es5的样子。babel支持jsx、jspm、webpack等。
安装babel:npm install babel-cli –save-dev
查看babel帮助信息:babel -help
使用babel处理文件:
eg1.babel script.js
script.js为被处理文件【结果将被输出到控制台】
eg2. babel script.js –out-file script-compiled.js
script.js为被处理文件 script-compiled.js为处理后的文件【结果存储在script-compiled.js中】【–out-file的简写为 -o】
eg3.babel src –out-dir lib
src为源文件夹 lib为目标文件夹【将src中的文件处理后放置lib文件夹下】【–out-dir简写为-d】
eg4.babel src –watch -d lib
【–watch表示即使检测改变,则lib中的文件也改变】【–watch应放在命令的最前】
设置npm run的脚本:在package.json中的scripts中写入键值
eg.”build”:”./node_modules/.bin/babel src –watch -d lib”
使用命令: npm run build 则会指定对应操作
让babel执行具体内容需要安装对应的插件:
(1)想让es6中的箭头函数编译成es5的函数,则需要安装babel-plugin-transform-es2015-arrow-functions插件
(2)babel提供preset(可以理解成相关插件的集合),想要编译es2015的代码,就需要加入es2015的预设:babel-preset-es2015
(3)处理react项目则需要加入react预设:babel-preset-react
(4)注意需要在项目根目录下创建.babelrc文件(babel的配置文件),并写入想要使用的预设 :
{
"presets":['es2015']
}
react需要用babel将jsx格式代码转换成正常的javascript,需要安装预设:babel-preset-react
babel可以与其他的build system放到一起使用,如gulp:
(1)什么是gulp: Gulp 是基于node.js的一个前端自动化构建工具,开发这可以使用它构建自动化工作流程(前端集成开发环境)。 使用gulp你可以简化工作量,让你把重点放在功能的开发上,从而提高你的开发效率和工作质量。 例如:你可以用gulp可以网页自动刷新,和MVVM开发模式很相似,如果你对vue.js有所了解的话,那么你一定不会陌生。你也可以使用gulp对sass进行预处理、代码检测、图片优化压缩、只需要一个简单的指令就能全部完成。
(2)使用gulp结合babel:
安装gulp:npm install gulp gulp-babel –save-dev
手动创建gulp配置文件gulpfile.js(在项目根目录下):
gulpfile.js内容
var gulp = require(‘gulp’);
var babel = require(‘gulp-babel’);
//创建默认任务,任务具体做的事放在第二个参数
gulp.task(‘default’,()=>{
return gulp.src(‘src/*.js’) //设置源文件
.pipe(babel()) //利用babel处理
.pipe(gulp.dest(‘lib’)) //将处理好的文件放到lib文件夹下
});
在命令行中输入gulp 即可以将src中的文件用babel编译好放到lib中
babel的预设是走的.babelrc文件内容