详解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 相关文章推荐
jquery dialog键盘事件代码
Aug 01 Javascript
js中 关于undefined和null的区别介绍
Apr 16 Javascript
javascript动态添加样式(行内式/嵌入式/外链式等规则)
Jun 24 Javascript
javascript中parentNode,childNodes,children的应用详解
Dec 17 Javascript
实用jquery操作表单元素的简单代码
Jul 04 Javascript
jquery select2的使用心得(推荐)
Dec 04 Javascript
微信小程序 JS动态修改样式的实现代码
Feb 10 Javascript
bootstrap daterangepicker汉化以及扩展功能
Jun 15 Javascript
微信JSSDK调用微信扫一扫功能的方法
Jul 25 Javascript
基于vue-upload-component封装一个图片上传组件的示例
Oct 16 Javascript
JS Thunk 函数的含义和用法实例总结
Apr 08 Javascript
解决antd 下拉框 input [defaultValue] 的值的问题
Oct 31 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
PHP中的加密功能
2006/10/09 PHP
一个简单的PHP入门源程序
2006/10/09 PHP
php+jquery编码方面的一些心得(utf-8 gb2312)
2010/10/12 PHP
php中将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串
2011/08/23 PHP
微信扫描二维码登录网站代码示例
2013/12/30 PHP
destoon首页调用求购供应信息的地区名称的方法
2014/08/21 PHP
PHP清除数组中所有字符串两端空格的方法
2014/10/20 PHP
Linux系统递归生成目录中文件的md5的方法
2015/06/29 PHP
php fread读取文件注意事项
2016/09/24 PHP
php表单加入Token防止重复提交的方法分析
2016/10/10 PHP
Raphael带文本标签可拖动的图形实现代码
2013/02/20 Javascript
jquery在项目中做复选框时遇到的一些问题笔记
2013/11/17 Javascript
JavaScript打印网页指定区域的例子
2014/05/03 Javascript
JavaScript实现的简单幂函数实例
2015/04/17 Javascript
AngularJS+Node.js实现在线聊天室
2015/08/28 Javascript
js实现网站最上边可关闭的浮动广告条代码
2015/09/04 Javascript
JavaScript笔记之数据属性和存储器属性
2016/03/31 Javascript
jQuery中的Deferred和promise 的区别
2016/04/03 Javascript
实例详解ECMAScript5中新增的Array方法
2016/04/05 Javascript
Angular和Vue双向数据绑定的实现原理(重点是vue的双向绑定)
2016/11/22 Javascript
浅谈javascript中的 “ &amp;&amp; ” 和 “ || ”
2017/02/02 Javascript
react ant Design手动设置表单的值操作
2020/10/31 Javascript
使用PYTHON创建XML文档
2012/03/01 Python
python使用os模块的os.walk遍历文件夹示例
2014/01/27 Python
对tensorflow 中tile函数的使用详解
2020/02/07 Python
python连接打印机实现打印文档、图片、pdf文件等功能
2020/02/07 Python
简单了解python关键字global nonlocal区别
2020/09/21 Python
介绍一下Java中的static关键字
2012/05/12 面试题
酒店服务与管理毕业生求职信
2013/11/02 职场文书
物理教师自荐信范文
2013/12/28 职场文书
班主任班级寄语大全
2014/04/04 职场文书
三分钟自我介绍演讲稿
2014/08/21 职场文书
我们的节日中秋节活动总结
2015/03/23 职场文书
读《茶花女》有感:山茶花的盛开与凋零
2020/01/17 职场文书
Redis的字符串是如何实现的
2021/10/24 Redis
windows server 2016 域环境搭建的方法步骤(图文)
2022/06/25 Servers