Babel 安装教程
Babel是一个广泛使用的转码器,可以将ES6代码转为ES5代码,从而在现有环境执行。
这意味着,你可以现在就用 ES6 编写程序,而不用担心现有环境是否支持。下面是一个例子。
- // 转码前
- input.map(item => item + 1);
- // 转码后
- input.map(function (item) {
- return item + 1;
- });
上面的原始代码用了箭头函数,这个特性还没有得到广泛支持,Babel将其转为普通函数,就能在现有的JavaScript环境执行了。
一、配置文件.babelrc
Babel的配置文件是.babelrc
,存放在项目的根目录下。使用Babel的第一步,就是配置这个文件。
该文件用来设置转码规则和插件,基本格式如下。
- {
- "presets": [
- "es2015",
- "react",
- "stage-2"
- ],
- "plugins": ["transform-object-assign","babel-plugin-transform-runtime"]
- }
"plugins": ["transform-object-assign","babel-plugin-transform-runtime"] 这两个插件,
只要"babel-plugin-transform-runtime" 即可它包含了es6基本的新api 和方法的编绎,如promise等,
"transform-object-assign" 是用来单独编绎 Object.assign的 ( let obj = Object.assign({},{a:66,b:88}) Object.assign )
presets
字段设定转码规则,官方提供以下的规则集,你可以根据需要安装。
# ES2015转码规则
npm install --save-dev babel-preset-es2015
# react转码规则
npm install --save-dev babel-preset-react
# ES7不同阶段语法提案的转码规则(共有4个阶段),选装一个
npm install --save-dev babel-preset-stage-0
npm install --save-dev babel-preset-stage-1
npm install --save-dev babel-preset-stage-2
npm install --save-dev babel-preset-stage-3
然后,将这些规则加入.babelrc
。
{
"presets": [
"es2015",
"react",
"stage-2"
],
"plugins": []
}
注意,以下所有Babel工具和模块的使用,都必须先写好.babelrc
二、命令行转码babel-cli
Babel提供babel-cli
工具,用于命令行转码。
它的安装命令如下。
npm install --global babel-cli
基本用法如下。
- # 转码结果输出到标准输出
- babel example.js
- # 转码结果写入一个文件
- # --out-file 或 -o 参数指定输出文件
- babel example.js --out-file compiled.js
- # 或者
- babel example.js -o compiled.js
- # 整个目录转码
- # --out-dir 或 -d 参数指定输出目录
- babel src --out-dir lib
- # 或者
- babel src -d lib
- # -s 参数生成source map文件
- babel src -d lib -s
上面代码是在全局环境下,进行Babel转码。这意味着,如果项目要运行,全局环境必须有Babel,也就是说项目产生了对环境的依赖。另一方面,这样做也无法支持不同项目使用不同版本的Babel。
一个解决办法是将babel-cli
安装在项目之中。
如图比如项目结构如此:
同上先在项目根部 把 .babelrc 文件填好,以下直接粘贴到文件中:
- {
- "presets": [
- "es2015",
- "react",
- "stage-2"
- ],
- "plugins": ["transform-object-assign","babel-plugin-transform-runtime"]
- }
然后安装babel-cli
- # 安装
- npm install --save-dev babel-cli
- 然后,改写
package.json
。
- {
- "devDependencies": {
- "babel-cli": "^6.26.0",
- "babel-plugin-transform-object-assign": "^6.22.0", //同上是用来单独编绎 Object.assign的,可去除
- "babel-plugin-transform-runtime": "^6.22.0",
- "babel-polyfill": "^6.2.0",
- "babel-preset-es2015": "^6.24.1",
- "babel-preset-react": "^6.24.1",
- "babel-preset-stage-2": "^6.24.1"
- },
- "scripts": {
- "build": "babel src -d lib"
- } // src为项目的文件夹 lib为编绎好后要导出到的文件夹
- }
下一步--安装依赖
- npm install
最后一步--编绎
- npm run build
Babel 安装教程的更多相关文章
- 最详细eclipse汉化插件安装教程
最详细eclipse汉化插件安装教程(转) 转自:http://blog.csdn.net/dai_zhenliang/article/details/8588576#t4 教程作者:戴振良 本文与& ...
- Eclipse 00: 安装教程 + 汉化 + 简单创建java项目
Java 安装教程(Eclipse) 目录: 要安装Java 要分两个步骤: 1.JDK的安装 2.Eclipse的安装 3.Eclipse汉化 4.Eclipse创建简单java项目 1和2的顺序不 ...
- Linux+apache+mono+asp.net安装教程
Linux+apache+mono+asp.net安装教程(CentOS上测试的) 一.准备工作: 1.安装linux系统(CentOS,这个就不多讲了) 2.下载所需软件 http-2.4.4.ta ...
- Greenplum 源码安装教程 —— 以 CentOS 平台为例
Greenplum 源码安装教程 作者:Arthur_Qin 禾众 Greenplum 主体以及orca ( 新一代优化器 ) 的代码以可以从 Github 上下载.如果不打算查看代码,想下载编译好的 ...
- git 安装教程
昆,简单说下安装教程1,安装Git2,安装TortoiseGit3,打开第一步安装的git工具GIT BASH
- Docker和Docker-compose安装教程以及docker-elk,docker-storm安装教程
此安装教程仅供我自己安装配置时查看,其他的人不可以偷看!!! 安装Docker 1. Update package information, ensure that APT works with th ...
- RHEL 6.3 详细安装教程
以前刚接触linux时,什么都不懂,为了学习,在电脑上安装双系统(原系统为Win7),吃过不少苦头,在网上搜教程,很多都是语焉不详,导致安装过程中战战兢兢.最近朋友面试运维,面试官有考他对linux安 ...
- Android Studio的下载和安装教程(从ADT到AS)
之前一直使用的是Android development tools(简称ADT),后来说是google对ADT不再提供支持,然后一直在考虑是否把自己电脑换成Android Studio(简称AS),从 ...
- mysql快速导出数据库ER图和数据字典(附navicat11安装教程及资源)
♣ mysql使用navicat11快速导出数据库ER图 ♣ mysql使用navicat11快速导出数据库数据字典 ♣ navicat11 for mysql (这里是mysql5.7.12)专业版 ...
随机推荐
- python matplotlib 播放图片变化过程
最近想将原图片和处理后的图片放在一起观察图片的变化过程.但是网上并么有找到有用的示例代码,所以粘出来和大家分享一下. import numpy as np import matplotlib.pypl ...
- Javascript原型继承容易忽略的错误
编写Javascript的开发者都知道,JS虽然没有类(ES6添加了class语法),但是可以模拟出OOP语言的类和面向对象的概念,比如我们都知道的一句话,Javascript中处处是对象,而面向对象 ...
- 简述java中equals()方法和==的区别
==与equals的主要区别是: ==: ==常用于比较原生类型(基本数据类型):byte,short,char,int,long,float,double,boolean,比较的是他们的值. 若用= ...
- ubuntu中gdb调试工具的使用
首先有一段.c代码 1.可调试gcc编译:gcc -g -o xxx xxx.c 2.启动gdb调试 gdb xxx 3.在main函数处设置断点 break main 4.运行程序 run 5.其他 ...
- 关于Git的版本问题
问题的起源 我在IDEA上不小心修改了文件(加了一行空行)并且被保存了,在GitHub Desktop桌面工具上可以看到changes中有修改记录,并且使用命令行git status也可以看到文件的修 ...
- Linux系统内存占用90%以上——解决方法
Linux系统内存占用90%以上--解决方法 首先要明确一个问题:Linux系统内存占用90%以上,是否属于正常范围?网上有详细的解释,这属于正常现象~~~ www.2cto.com L ...
- egametang框架服务端运行流程
et框架的构建块主要由entity和componet组成,类似unity的组件.一个Entity可以挂载多个不同Component.Entity和Component的共同基类Disposer用于提供对 ...
- uva1343 IDA*
这题需要用数组记录每个block的位置.启发函数:d+wa(8-当前最多相同个数)>maxd直接退出 AC代码: #include<cstdio> #include<cstri ...
- BUNOJ 1011
字符串处理的题.原题链接 AC代码: #include<cstring> #include<cstdio> #include<string> #include< ...
- SpringBoot整合SpringSecurity,SESSION 并发管理,同账号只允许登录一次
重写了UsernamePasswordAuthenticationFilter,里面继承AbstractAuthenticationProcessingFilter,这个类里面的session认证策略 ...