详解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 相关文章推荐
js操作select控件的几种方法
Jun 02 Javascript
精通Javascript系列之数值计算
Jun 07 Javascript
常用的jquery模板插件——jQuery Boilerplate介绍
Sep 23 Javascript
jQuery+CSS实现的网页二级下滑菜单效果
Aug 25 Javascript
初识angular框架后的所思所想
Feb 19 Javascript
jQuery文字提示与图片提示效果实现方法
Jul 04 Javascript
原生js实现tab选项卡切换
Mar 23 Javascript
js运动事件函数详解
Oct 21 Javascript
基于JS实现checkbox全选功能实例代码
Oct 31 Javascript
基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果
Jan 09 Javascript
JS实现拖拽元素时与另一元素碰撞检测
Aug 27 Javascript
Vue h函数的使用详解
Feb 18 Vue.js
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
用PHP读取flv文件的播放时间长度
2009/09/03 PHP
php/js获取客户端mac地址的实现代码
2013/07/08 PHP
ThinkPHP里用U方法调用js文件实例
2015/06/18 PHP
PHP结合jQuery实现找回密码
2015/07/22 PHP
Yii2实现ajax上传图片插件用法
2016/04/28 PHP
详谈php ip2long 出现负数的原因及解决方法
2017/04/05 PHP
Js基础学习资料
2010/11/23 Javascript
input 输入框获得/失去焦点时隐藏/显示文字(jquery版)
2013/04/02 Javascript
让js弹出窗口居前显示的实现方法
2013/07/10 Javascript
qq悬浮代码(兼容各个浏览器)
2014/01/29 Javascript
jQuery获取节点和子节点文本的方法
2014/07/22 Javascript
JS简单实现String转Date的方法
2016/03/02 Javascript
jquery组件WebUploader文件上传用法详解
2020/10/23 Javascript
JS正则子匹配实例分析
2016/12/22 Javascript
jQuery中animate()的使用方法及解决$(”body“).animate({“scrollTop”:top})不被Firefox支持的问题
2017/04/04 jQuery
javascript实现获取一个日期段内每天不同的价格(计算入住总价格)
2018/02/05 Javascript
JS 使用 window对象的print方法实现分页打印功能
2018/05/16 Javascript
使用RN Animated做一个“添加购物车”动画的方法
2018/09/12 Javascript
postman自定义函数实现 时间函数的思路详解
2019/04/17 Javascript
vue 弹出遮罩层样式实例
2020/07/22 Javascript
[55:48]VGJ.S vs TNC Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
浅析Git版本控制器使用
2017/12/10 Python
利用Python实现在同一网络中的本地文件共享方法
2018/06/04 Python
解决python3中os.popen()出错的问题
2020/11/19 Python
pytorch __init__、forward与__call__的用法小结
2021/02/27 Python
html5手机端页面可以向右滑动导致样式受影响的问题
2018/06/20 HTML / CSS
全球知名旅游社区法国站点:TripAdvisor法国
2016/08/03 全球购物
前台接待的工作职责
2013/11/21 职场文书
网络编辑岗位职责范本
2014/02/10 职场文书
出纳员岗位职责
2014/03/13 职场文书
装配出错检讨书
2014/09/23 职场文书
工作经历证明书范文
2014/11/02 职场文书
保洁员岗位职责
2015/02/04 职场文书
高中生思想道德自我评价
2015/03/09 职场文书
幼儿园安全管理制度
2015/08/05 职场文书
如何创建一个创建MySQL数据库中的datetime类型
2022/03/21 MySQL