详解webpack babel的配置


Posted in Javascript onJanuary 09, 2018

Babel是什么

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

  1. 使用下一代的javascript(ES6,ES7,……)代码,即使当前浏览器没有完成支持;
  2. 使用基于JavvScript进行扩展语言,比如React的JSX;

npm i babel-core babel-preset-env babel-loader babel-plugin-transform-runtime babel-preset-stage-2 -D

关于babel的使用

首先 babel-preset-es2015 已经废弃,你可以使用 babel-preset-env 来代替它,后者比前者更好的更方便,这里不在赘述。

babel-polyfill VS babel-runtime VS babel-plugin-transform-runtime

  1. 首先 babel-polyfill 是对所有的API进行全局设置。并且会污染全局变量。
  2. babel-runtime 需要对你需要的API,如:Object.assign()。会先require()
  3. babel-plugin-transform-runtime 最推荐。它不需要require()也不会全局污染,并且,更厉害的是它是按需打包,全自动。

开始

/**** webpack.config.js ****/
// 在规则中增加
{
  test: /\.js$/,
  use: 'babel-loader',
  // 只处理src目录下面的。
  // 你也可以配置一条规则处理node_modules下面的。
  // 我记得swiper不知道哪一版本的直接把原来为编译的es6的语法塞给我,导致浏览器不兼容。
  include:[resolve('../src')]
}
/**** .babelrc ****/
// presets字段设定转码规则
{
 "presets": [
  ["env", {
   "modules": false,
   // 需要支持的环境,可选入: chrome, edge, 也可以node:6.5 ,node:current......
   "targets": {
    "browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
   }
  }],
  "stage-2"
 ],
 // babel-transform-plugin转码预设不起作用的内容如:Object.assign()等等
 "plugins": ["transform-runtime"]
}

presets能够解决哪些语法。 package

babel-plugin-transform-runtime能够解决哪些语法。 package

其他。 更多 

最后:babel看上去好像要配置很多,其实经过官方的一顿简化之后需要的并没有那么繁琐。

github

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
写的htc的数据表格
Jan 20 Javascript
用javascript自动显示最后更新时间
Mar 15 Javascript
js对象转json数组的简单实现案例
Feb 28 Javascript
基于jquery实现人物头像跟随鼠标转动
Aug 23 Javascript
jQuery中JSONP的两种实现方式详解
Sep 26 Javascript
微信小程序教程系列之设置标题栏和导航栏(7)
Jun 29 Javascript
在使用JSON格式处理数据时应该注意的问题小结
May 20 Javascript
jQuery实现的事件绑定功能基本示例
Oct 11 jQuery
angularjs实现天气预报功能
Jun 16 Javascript
12条写出高质量JS代码的方法
Jan 07 Javascript
vue webpack开发访问后台接口全局配置的方法
Sep 18 Javascript
Vuex modules模式下mapState/mapMutations的操作实例
Oct 17 Javascript
webpack+vue2构建vue项目骨架的方法
Jan 09 #Javascript
webpack vue 项目打包生成的文件,资源文件报404问题的修复方法(总结篇)
Jan 09 #Javascript
vue.js整合vux中的上拉加载下拉刷新实例教程
Jan 09 #Javascript
Gulp实现静态网页模块化的方法详解
Jan 09 #Javascript
js实现微信/QQ直接跳转到支付宝APP打开口令领红包功能
Jan 09 #Javascript
利用jqprint插件打印页面内容的实现方法
Jan 09 #Javascript
react-router v4如何使用history控制路由跳转详解
Jan 09 #Javascript
You might like
农民和部队如何穿矿
2020/03/04 星际争霸
用Php实现链结人气统计
2006/10/09 PHP
简单解决新浪SAE无法上传文件的问题
2015/05/13 PHP
php将图片文件转换成二进制输出的方法
2015/06/10 PHP
PHP缓存工具XCache安装与使用方法详解
2018/04/09 PHP
用jscript启动sqlserver
2007/06/21 Javascript
Mootools 1.2教程 输入过滤第二部分(字符串)
2009/09/15 Javascript
lyhucSelect基于Jquery的Select数据联动插件
2011/03/29 Javascript
引入autocomplete组件时JS报未结束字符串常量错误
2014/03/19 Javascript
javascript实现动态标签云
2015/10/16 Javascript
JavaScript tab选项卡插件实例代码
2016/02/23 Javascript
jQuery中通过ajax的get()函数读取页面的方法
2016/02/29 Javascript
js实现功能比较全面的全选和多选
2017/03/02 Javascript
Node.js 中exports 和 module.exports 的区别
2017/03/14 Javascript
原生JS写Ajax的请求函数功能
2017/12/22 Javascript
vue2.0+ 从插件开发到npm发布的示例代码
2018/04/28 Javascript
构建大型 Vue.js 项目的10条建议(小结)
2019/11/14 Javascript
vue路由结构可设一层方便动态添加路由操作
2020/08/31 Javascript
python实现查询IP地址所在地
2015/03/29 Python
在Python中用keys()方法返回字典键的教程
2015/05/21 Python
简介Django中内置的一些中间件
2015/07/24 Python
实例分析python3实现并发访问水平切分表
2018/09/29 Python
Python脚本修改阿里云的访问控制列表的方法
2019/03/08 Python
django mysql数据库及图片上传接口详解
2019/07/18 Python
Django 全局的static和templates的使用详解
2019/07/19 Python
PyQt5高级界面控件之QTableWidget的具体使用方法
2020/02/23 Python
解决pycharm中的run和debug失效无法点击运行
2020/06/09 Python
Perfume’s Club法国站:购买香水和化妆品
2019/05/02 全球购物
平面设计师的工作职责
2013/11/21 职场文书
小学关爱留守儿童活动方案
2014/08/25 职场文书
公司授权委托书样本
2014/09/15 职场文书
2015年银行工作总结范文
2015/04/01 职场文书
2015年大学组织委员个人工作总结
2015/10/23 职场文书
八年级作文之一起的走过日子
2019/09/17 职场文书
go xorm框架的使用
2021/05/22 Golang
关于nginx 实现jira反向代理的问题
2021/09/25 Servers