前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Babel:JavaScript“编译器”

Babel:JavaScript“编译器”

作者头像
WEBJ2EE
发布2019-07-19 11:35:26
9750
发布2019-07-19 11:35:26
举报
文章被收录于专栏:WebJ2EE

1. Babel是啥?能干啥?

Babel是由Node.js承载前端工具生态中的一员,负责“编译”、“转换”无法在各浏览器中直接运行的JavaScript代码为浏览器可识别的代码,为WEB开发人员提供一个规范、统一的开发平台;

Babel能干啥?

1.1. ES6语法降级:

最新的ECMAScript规范为JavaScript编程带来了极大的便利性(比如:箭头函数、局部作用域、异步模型等),但各浏览器厂商对规范的实现仍然远落后于规范的更新速度;Babel的babel-preset-env支持将ES6语法降级转换为ES5语法,这意味着我们可以使用ES6编写程序,而不用担心现有环境是否支持

1.2. JSX语法转换:

在React中使用JSX的好处多多(语义清晰、结构直观、抽象了React Element 的创建过程),但JSX语法不能直接被浏览器识别;Babel的babel-preset-react提供了将JSX语法转换为React Element代码的能力,这意味着我们可以充分利用JSX给我们带来的便利

1.3. Flow注解清除:

Flow就是JavaScript的静态类型检查工具,通过它的注解型语法,可以减少编码中的“类型错误”;同样,Flow的注解语法也无法被浏览器识别,Babel的babel-preset-flow则是主流的用于上线前从源码中剔除Flow语法的工具;

Babel还有很多功能,比如PolyfillSourceMap等,这里就不细说了,有兴趣可以去官网瞅瞅;

简单来说,用上Babel,再也不用担心

“这个特性能在xx浏览器上用么?”

这种问题了

2. Babel的核心组成

babel-cli:命令行工具,用于JavaScript转码

注:babel-cli执行时,会以.babelrc文件中的配置为准;

babel-node: 命令行工具,用于执行JavaScript;

注:babel-node是随babel-cli安装的,无需独立安装;

babel-plugin-xxx:babel的功能都由插件实现,例:

## ES6箭头函数转换插件 npm install --save-dev babel-plugin-transform-es2015-arrow-functions ## ES6展开运算符转换插件 npm install --save-dev babel-plugin-transform-es2015-spread

babel-preset-yyy: preset是plugin的集合,例:

## preset-es2015 npm install --save-dev babel-preset-es2015

## preset-es2016 npm install --save-dev babel-preset-es2016

## preset-es2017 npm install --save-dev babel-preset-es2017

## preset-env包含es2015、es2016、es2017 npm install --save-dev babel-preset-env

注:转换ES6代码,只用babel-preset-env就够了;

3. Babel环境搭建

3.1. 安装Node.js

Babel 是 Node.js 前端工具生态中的一员,所以得先装Node.js。

3.2. 安装babel-cli

babel-cli是命令行工具,用于JavaScript转码;

安装babel-cli: npm install --save-dev babel-cli bebel-cl常见用法: ## 转码结果输出到控制台 babel es6.js ## 转码结果写入文件 babel es6.js -o es6_compiled.js ## -s,生成source map文件 babel es6.js -o es6_compiled.js -s

3.3. 安装babel语法转换插件

## ECMAScript转换插件 npm install --save-dev babel-preset-env ## React转换插件 npm install --save-dev babel-preset-react ## Flow转换插件 npm install --save-dev babel-preset-flow

注1:babel-preset-env是babel-preset-es2015、babel-preset-es2016、babel-preset-2017的进化版,只安装一个babel-preset-env就足够了;

注2:babel-preset-env的详细信息可以参考“http://2ality.com/2017/02/babel-preset-env.html”

3.4. 配置 .babelrc

.babelrc是babel的配置文件,放在项目根目录即可;babel命令执行时会按照此文件中的配置进行代码转换

注:Windows 系统无法直接创建这种命名方式的文件,可以借助IDE工具创建;

3.5. 与Webpack集成

通常Babel不会在项目中单独使用,业界主流做法是将Babel与构建工具Webpack搭配起来,打造完善的“前端工程化体系”;

肿么样?Babel很给力吧?

有兴趣深入挖掘的同学

请访问

参考:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-04-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 WebJ2EE 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档