Babel是什么?

Babel是一个编译JavaScript的平台,它的强大之处表现在可以通过编译达到以下目的:

使用下一代的javaScript代码(ES6,ES7….),即使这些标准目前并未被当前的浏览器完全支持。

使用基于JavaScript进行了扩展的语言,比如React的JSX。

1.如何让webpack支持babel呢?

Babel其实是几个模块化的包,其核心功能位于称为babel-core的npm包中,webpack可以把其不同的包整合在一起使用,对于每一个你需要的功能或拓展,你

都需要安装单独的包(用得最多的是解析ES6babel-preset-es2015包和解析JSXbabel-preset-react包)。

1.1.安装

一次性安装这些依赖包(也可以单独安装),此处使用cnpm安装(也可以使用npm安装):

cnpm  install --save-dev babel-core babel-loader babel-preset-es2015 babel-preset-react

--save-dev:表示将模块安装到项目目录下,并在package文件的devDependencies节点写入依赖。

此处注意版本兼容问题,若出现版本兼容问题,可先删除node_modules然后安装我此处使用的版本(删除node_modules后直接修改package.json中版本,然后使用npm install 即可(或cnpm install)):

cnpm  install --save-dev babel-core@6.26.3 babel-loader@7.1.4 babel-preset-es2015@6.24.1 babel-preset-react@6.24.1

1.2配置Babel

在webpack.fonfig.js中进行配置:

{
test:/\.(jsx|js)$/,
use:{
loader:'babel-loader',
options:{
presets:[
"es2015","react"
]
}
},
exclude:/node_modules/ //排除node_modules下面的包
}

1.3 修改entry.js中的js代码:

{
let test= 'Hello Webpack'
document.getElementById('title').innerHTML=test;
}

1.4 打包

上面的代码使用了ES6的let声明方法。如果不使用Babel来进行转换,我们打包出来的js代码没有作兼容处理,使用了Babel转换的代码是进行处理过的,转成了

es5的语法。

使用webpack命令进行打包

webpack

通过上述的配置,webpack其实已经支持babel,但是不是最好的选择,还可以进行优化。

2. .babelrc配置

虽然Babel可以直接在webpack.config.js中进行配置,但是考虑到babel具有非常多的配置选项,如果都写在webapck.config.js中会非常的雍长不利于阅读,

所以我们经常把配置写在.babelrc文件里。

2.1 新建.babelrc

在项目根目录新建.babelrc文件,并把配置写到文件里。

.babelrc:

{
"presets":["react","es2015"]
}

此时的webpack.config.js文件里loader配置变为:

{
test:/\.(jsx|js)$/,
use:{
loader:'babel-loader',
},
exclude:/node_modules/
}

此时我们打包,效果与上面的一致。

通过.babelrc的配置,使babel相关配置与webpack.config.js分离开来,便于阅读与维护。但此时.babelrc配置文件里的相关配置信息有点落伍了,下面来学学新一

代的babel-preset。

3.ENV的使用

现在网络上已经不流行babel-preset-es2015,现在官方推荐使用的是babel-preset-env,为了不落伍我们就来学学ENV的相关知识:

3.1 插件下载(也可以使用cnpm)

npm  install --save-dev babel-preset-env

3.2 修改.babelrc里的配置文件

{
"presets":["react","env"]
}

3.3 打包

此时我们再使用webpack命令进行打包,最终的打包结果也上述都一致。

对于在React中Babel的使用,如何解析JSX,会在后续继续学习,这里就算是先过过眼把。

有什么问题,欢迎关注并留言!!

(15/24) 为webpack增加babel支持的更多相关文章

  1. webpack快速入门——给webpack增加babel支持

    1.Babel的安装与配置 Babel其实是几个模块化的包,其核心功能位于称为babel-core的npm包中,webpack可以把其不同的包整合在一起使用,对于每一个 你需要的功能或拓展,你都需要安 ...

  2. webpack配置:增加babel支持、打包后调试

    一.babel支持 Babel其实是几个模块化的包,其核心功能位于称为babel-core的npm包中,webpack可以把其不同的包整合在一起使用,对于每一个你需要的功能或拓展,你都需要安装单独的包 ...

  3. 使用webpack、babel、react、antdesign配置单页面应用开发环境

    这是Webpack+React系列配置过程记录的第一篇.其他内容请参考: 第一篇:使用webpack.babel.react.antdesign配置单页面应用开发环境 第二篇:使用react-rout ...

  4. webpack 多页面支持 & 公共组件单独打包

    webpack - 多页面/入口支持 & 公共组件单独打包 webpack系列目录 webpack 系列 一:模块系统的演进 webpack 系列 二:webpack 介绍&安装 we ...

  5. 图像分辨率 像素 大小 LCD显示 为OLED屏增加GUI支持

    1. 根据一张标准图片的分辨率,结合每个像素的大小,可以计算得到这张图片的大小(字节数) 补充点:bmp格式的图片有24色或者32色.(其一个像素点可能占用24bits或者32bits)  至于图片怎 ...

  6. [原创] Easy SysLite V1.2 (2016.5.29更新,新增加WIN10支持,一个程序适配所有系统减肥)

    [原创] Easy SysLite V1.2 (2016.5.29更新,新增加WIN10支持,一个程序适配所有系统减肥) nohacks 发表于 2016-5-29 17:12:51 https:// ...

  7. Linux PHP增加JSON支持及如何使用JSON

    Linux PHP增加JSON支持及如何使用JSON 目前,JSON已经成为最流行的数据交换格式之一,各大网站的API几乎都支持它. JSON(JavaScript Object Notation)  ...

  8. openerp学习笔记 domain 增加扩展支持,例如支持 <field name="domain">[('type','=','get_user_ht_type()')]</field>

    示例代码1,ir_action_window.read : # -*- coding: utf-8 -*-from openerp.osv import fields,osv class res_us ...

  9. 为cocos2d-x项目增加Lua支持

    开始为游戏增加Lua脚本支持,今天主要配置了一下开发环境:cocos2d-x 2.2.1,xcode5. 1. 创建cocos2d-x-lua项目 类似于创建C++项目,用以下命令即可: python ...

随机推荐

  1. L3-018 森森美图 (30 分)

    森森最近想让自己的朋友圈熠熠生辉,所以他决定自己写个美化照片的软件,并起名为森森美图.众所周知,在合照中美化自己的面部而不美化合照者的面部是让自己占据朋友圈高点的绝好方法,因此森森美图里当然得有这个功 ...

  2. freemarker逻辑判断写法#if

    <li class="<#if (position.flag)! =='haha1'>hide<#else >show</#if>"> ...

  3. 【转】python3中bytes和string之间的互相转换

    问题: 比对算法测试脚本在python2.7上跑的没问题,在python3上报错,将base64转码之后的串打印出来发现,2.7版本和3是不一样的:2.7就是字符串类型的,但是3是bytes类型的,形 ...

  4. WPF 中对启动参数的处理

    /// <summary>    /// Interaction logic for App.xaml    /// </summary>    public partial ...

  5. FaceBook: Text Tag Recommendation

    Text Tag Recommendation  --------2013/12/20 一: 背景 Kaggle上 facebook招聘比赛III. 任务要求是给定文本中抽取关键词.这里称作tag吧. ...

  6. Windows nginx php cgi-fcgi 配置 xdebug

    之前使用的是 Apache + PHP,不用怎么配置就可以. 由于服务器用的是 nginx,为了和服务器一致,所以本地开发也改为 nginx. 开始只是简单的开启 xdebug, 发现并不行. 找了一 ...

  7. [Python] 中文路径和中文文本文件乱码问题

    情景: Python首先读取名为log.txt的文本文件, 其中包含有文件名相对路径信息filename. 随后Python调用shutil.copy2(src, dst)对该filename文件进行 ...

  8. 【转】朱兆祺教你如何攻破C语言学习、笔试与机试的难点(连载)

    原文网址:http://bbs.elecfans.com/jishu_354666_1_1.html 再过1个月又是一年应届毕业生应聘的高峰期了,为了方便应届毕业生应聘,笔者将大学四年C语言知识及去年 ...

  9. php取两个整数的最大公约数算法大全

    php计算两个整数的最大公约数常用算法 <?php//计时,返回秒function microtime_float (){ list( $usec , $sec ) = explode ( &q ...

  10. gitlab安装教程、gitlab官网、英文文档

    gitlab官网 https://about.gitlab.com/ gitlab安装和官网英文文档 https://about.gitlab.com/downloads/ 清华大学tuna镜像源 G ...