详解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 中的内存泄露模式
Aug 13 Javascript
javascript call方法使用说明
Jan 11 Javascript
CSS+jQuery实现的一个放大缩小动画效果
Sep 24 Javascript
Jquery 类网页微信二维码图块滚动效果具体实现
Oct 14 Javascript
简单的js表单验证函数
Oct 28 Javascript
jQuery使用hide方法隐藏指定元素class样式用法实例
Mar 30 Javascript
wap手机端解决返回上一页的js实例
Dec 08 Javascript
微信小程序 Template详解及简单实例
Jan 05 Javascript
Vue中之nextTick函数源码分析详解
Oct 17 Javascript
深入理解react-router 路由的实现原理
Sep 26 Javascript
详解Vue iview IE浏览器不兼容报错(Iview Bable polyfill)
Jan 07 Javascript
使用ThinkJs搭建微信中控服务的实现方法
Aug 08 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
对盗链说再见...
2006/10/09 PHP
PHP 源代码压缩小工具
2009/12/22 PHP
php生成随机密码自定义函数代码(简单快速)
2014/05/10 PHP
php中mail函数发送邮件失败的解决方法
2014/12/24 PHP
PHPUnit测试私有属性和方法功能示例
2018/06/12 PHP
[原创]保存的js无法执行的解决办法
2007/02/25 Javascript
jQuery建立一个按字母顺序排列的友好页面索引(兼容IE6/7/8)
2013/02/26 Javascript
谈一谈javascript闭包
2016/01/28 Javascript
Angularjs使用directive自定义指令实现attribute继承的方法详解
2016/08/05 Javascript
AngularJS指令详解及示例代码
2016/08/16 Javascript
Bootstrap菜单按钮及导航实例解析
2016/09/09 Javascript
用Angular实时获取本地Localstorage数据,实现一个模拟后台数据登入的效果
2016/11/09 Javascript
js格式化时间的简单实例
2016/11/27 Javascript
vue中使用gojs/jointjs的示例代码
2018/08/24 Javascript
用Vue.js方法创建模板并使用多个模板合成
2019/06/28 Javascript
微信小程序连接服务器展示MQTT数据信息的实现
2020/07/14 Javascript
[02:23]2014DOTA2国际邀请赛中国战队回顾
2014/08/01 DOTA
[36:14]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第二局
2016/02/28 DOTA
[02:43]DOTA2亚洲邀请赛场馆攻略——带你走进东方体育中心
2018/03/19 DOTA
Python ftp上传文件
2016/02/13 Python
Python实现SSH远程登陆,并执行命令的方法(分享)
2017/05/08 Python
解决Python2.7读写文件中的中文乱码问题
2018/04/12 Python
python的一些加密方法及python 加密模块
2019/07/11 Python
大数据分析用java还是Python
2020/07/06 Python
瑞典最好的运动鞋专卖店:Sneakersnstuff
2016/08/29 全球购物
美国滑板店:Tactics
2020/11/08 全球购物
贝佳斯官方网站:Borghese
2020/05/08 全球购物
电脑教师的自我评价
2013/12/18 职场文书
会计学专业自荐信
2014/06/25 职场文书
机械操作工岗位职责
2014/08/08 职场文书
社区文明创建工作总结2015
2015/04/21 职场文书
2015年小学英语教师工作总结
2015/05/12 职场文书
预备党员介绍人意见
2015/06/01 职场文书
2015年国庆节寄语
2015/08/17 职场文书
导游词之金鞭溪风景区
2019/09/12 职场文书
聊聊pytorch测试的时候为何要加上model.eval()
2021/05/23 Python