详解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 相关文章推荐
JavaScript中实现块作用域的方法
Apr 01 Javascript
js 判断计算字符串长度/判断空的简单方法
Aug 05 Javascript
appendChild() 或 insertBefore()使用与区别介绍
Oct 11 Javascript
Jquery实现鼠标移动放大图片功能实例
Mar 25 Javascript
基于jQuery插件实现环形图标菜单旋转切换特效
May 15 Javascript
微信JSSDK上传图片
Aug 23 Javascript
jQuery事件的绑定、触发、及监听方法简单说明
May 10 Javascript
JS中call和apply函数用法实例分析
Jun 20 Javascript
vue+elementUi图片上传组件使用详解
Aug 20 Javascript
通过实例了解JS执行上下文运行原理
Jun 17 Javascript
在vue中使用Base64转码的案例
Aug 07 Javascript
vue实现点击按钮“查看详情”弹窗展示详情列表操作
Sep 09 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
CodeIgniter实现更改view文件夹路径的方法
2014/07/04 PHP
PHP中使用json数据格式定义字面量对象的方法
2014/08/20 PHP
PHP安装memcached扩展笔记
2015/05/28 PHP
使用PHP实现下载CSS文件中的图片
2015/12/06 PHP
javascript concat数组累加 示例
2009/09/03 Javascript
js跨域问题之跨域iframe自适应大小实现代码
2010/07/17 Javascript
jQuery EasyUI API 中文文档 - ProgressBar 进度条
2011/09/29 Javascript
深入探秘jquery瀑布流的实现
2016/01/30 Javascript
JavaScript Math 对象常用方法总结
2016/04/28 Javascript
js的form表单提交url传参数(包含+等特殊字符)的两种解决方法
2016/05/25 Javascript
浅析$.getJSON异步请求和同步请求
2016/06/06 Javascript
BootStrap 图标icon符号图标glyphicons不正常显示的快速解决办法
2016/12/08 Javascript
jquery Banner轮播选项卡
2016/12/26 Javascript
ionic 3.0+ 项目搭建运行环境的教程
2017/08/09 Javascript
nodejs 最新版安装npm 的使用详解
2018/01/18 NodeJs
[01:35]辉夜杯战队访谈宣传片—iG.V
2015/12/25 DOTA
[56:13]DOTA2-DPC中国联赛定级赛 LBZS vs Phoenix BO3第一场 1月10日
2021/03/11 DOTA
python实现感知器算法详解
2017/12/19 Python
python读取txt文件,去掉空格计算每行长度的方法
2018/12/20 Python
WxPython建立批量录入框窗口
2019/02/27 Python
python画图--输出指定像素点的颜色值方法
2019/07/03 Python
英国领先的奢侈品零售商之一:CRUISE
2016/12/02 全球购物
美国第二大连锁书店:Books-A-Million
2017/12/28 全球购物
美国LOGO设计公司:The Logo Company
2018/07/16 全球购物
.net软件工程师应聘上机试题
2015/03/10 面试题
学生实习推荐信范文
2013/11/26 职场文书
公司成立感言
2014/01/11 职场文书
2014世界杯球队球队口号
2014/06/05 职场文书
三八节标语
2014/06/27 职场文书
放飞梦想演讲稿200字
2014/08/26 职场文书
教师党员批评与自我批评发言稿
2014/10/15 职场文书
2014年员工工作总结范文
2014/11/18 职场文书
2016年度继续教育学习心得体会
2016/01/19 职场文书
浅谈redis整数集为什么不能降级
2021/07/25 Redis
Vue3中的Refs和Ref详情
2021/11/11 Vue.js
Python函数中apply、map、applymap的区别
2021/11/27 Python