详解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 相关文章推荐
关于使用runtimeStyle属性问题讨论文章
Mar 08 Javascript
jQuery EasyUI API 中文文档 - Documentation 文档
Sep 29 Javascript
js添加table的行和列 具体实现方法
Jul 22 Javascript
可选择和输入的下拉列表框示例
Nov 05 Javascript
javascript中parentNode,childNodes,children的应用详解
Dec 17 Javascript
javascript实现日期按月份加减
May 15 Javascript
谈谈第三方App接入微信登录 解读
Dec 27 Javascript
JavaScript对象引用与赋值实例详解
Mar 15 Javascript
无循环 JavaScript(map、reduce、filter和find)
Apr 08 Javascript
vue-cli脚手架-bulid下的配置文件
Mar 27 Javascript
React中的render何时执行过程
Apr 13 Javascript
微信小程序 wxParse插件显示视频问题
Sep 27 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
广播爱好者需要了解的天线知识
2021/03/01 无线电
二十行语句实现从Excel到mysql的转化
2006/10/09 PHP
php strlen mb_strlen计算中英文混排字符串长度
2009/07/10 PHP
保存到桌面、设为桌面且带图标的PHP代码
2013/11/19 PHP
ThinkPHP中关联查询实例
2014/12/02 PHP
浅谈php中curl、fsockopen的应用
2016/12/10 PHP
PHP函数积累总结
2019/03/19 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
2019/11/14 PHP
js调用打印机打印网页字体总是缩小一号的解决方法
2014/01/24 Javascript
JavaScript设置获取和设置属性的方法
2015/03/04 Javascript
JS+CSS相对定位实现的下拉菜单
2015/10/06 Javascript
Jquery检验手机号是否符合规则并根据手机号检测结果将提交按钮设为不同状态
2015/11/26 Javascript
jQuery实现文字自动横移
2017/01/08 Javascript
使用jquery DataTable和ajax向页面显示数据列表的方法
2018/08/09 jQuery
解决layer.msg 不居中 ifram中的问题
2019/09/05 Javascript
javascript设计模式 ? 模板方法模式原理与用法实例分析
2020/04/23 Javascript
vue.js 输入框输入值自动过滤特殊字符替换中问标点操作
2020/08/31 Javascript
Python multiprocessing模块中的Pipe管道使用实例
2015/04/11 Python
Python中max函数用法实例分析
2015/07/17 Python
Django使用paginator插件实现翻页功能的实例
2018/10/24 Python
在linux系统下安装python librtmp包的实现方法
2019/07/22 Python
Python 日期的转换及计算的具体使用详解
2020/01/16 Python
如何基于python3和Vue实现AES数据加密
2020/03/27 Python
浅谈Python 函数式编程
2020/06/20 Python
django haystack实现全文检索的示例代码
2020/06/24 Python
利用python对mysql表做全局模糊搜索并分页实例
2020/07/12 Python
倩碧英国官网:Clinique英国
2018/08/10 全球购物
美国球迷装备的第一来源:FOCO
2020/07/03 全球购物
逻辑链路控制协议
2016/10/01 面试题
青年教师培训方案
2014/02/06 职场文书
保护动物的标语
2014/06/11 职场文书
电子专业自荐信
2014/07/01 职场文书
2015秋季开学典礼新闻稿
2015/07/17 职场文书
详解PHP服务器如何在有限的资源里最大提升并发能力
2021/05/25 PHP
利用Java设置Word文本框中的文字旋转方向的实现方法
2021/06/28 Java/Android
Spring Boot 实现 WebSocket
2022/04/30 Java/Android