详解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 相关文章推荐
文本框输入时 实现自动提示(像百度、google一样)
Apr 05 Javascript
JS生成不重复随机数组的函数代码
Jun 10 Javascript
javascript实现设置、获取和删除Cookie的方法
Jun 01 Javascript
Jquery uploadify上传插件使用详解
Jan 13 Javascript
iOS和Android用同一个二维码实现跳转下载链接的方法
Sep 28 Javascript
JavaScript学习笔记--常用的互动方法
Dec 07 Javascript
JavaScript实现倒计时跳转页面功能【实用】
Dec 13 Javascript
bootstrap表单示例代码分享
May 18 Javascript
Easyui Datagrid自定义按钮列(最后面的操作列)
Jul 13 Javascript
node.js用fs.rename强制重命名或移动文件夹的方法
Dec 27 Javascript
了解ESlint和其相关操作小结
May 21 Javascript
JS监听事件的叠加和移除功能
Nov 19 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 字符过滤类,用于过滤各类用户输入的数据
2009/05/27 PHP
ThinkPHP CURD方法之data方法详解
2014/06/18 PHP
php实现简单的上传进度条
2015/11/17 PHP
php简单生成一组与多组随机字符串的方法
2017/05/09 PHP
javascript中input中readonly和disabled区别介绍
2012/10/23 Javascript
js+数组实现网页上显示时间/星期几的实用方法
2013/01/18 Javascript
打印json对象的内容及JSON.stringify函数应用
2013/03/29 Javascript
js图片预加载示例
2014/04/30 Javascript
js中直接声明一个对象的方法
2014/08/10 Javascript
jQuery模拟360浏览器切屏效果幻灯片(附demo源码下载)
2016/01/29 Javascript
利用jquery制作滚动到指定位置触发动画
2016/03/26 Javascript
深入理解react-router@4.0 使用和源码解析
2017/05/23 Javascript
JS数组方法join()用法实例分析
2020/01/18 Javascript
压缩Vue.js打包后的体积方法总结(Vue.js打包后体积过大问题)
2020/02/03 Javascript
JavaScript对象原型链原理详解
2020/02/05 Javascript
JavaScript实现电灯开关小案例
2020/03/30 Javascript
vue使用axios实现excel文件下载的功能
2020/07/16 Javascript
python创建和删除目录的方法
2015/04/29 Python
Python判断文本中消息重复次数的方法
2016/04/27 Python
利用python实现xml与数据库读取转换的方法
2017/06/17 Python
Python API 自动化实战详解(纯代码)
2019/06/11 Python
Python 安装 virturalenv 虚拟环境的教程详解
2020/02/21 Python
opencv 形态学变换(开运算,闭运算,梯度运算)
2020/07/07 Python
Python爬虫之Spider类用法简单介绍
2020/08/04 Python
Python 3.9的到来到底是意味着什么
2020/10/14 Python
python中numpy.empty()函数实例讲解
2021/02/05 Python
使用Html5实现异步上传文件,支持跨域,带有上传进度条
2016/09/17 HTML / CSS
JSF的标签库有哪些
2012/04/27 面试题
应届大专毕业生个人自荐信
2013/09/22 职场文书
电话客服专员岗位职责
2014/06/28 职场文书
离婚财产分配协议书
2014/10/21 职场文书
2014年小学图书室工作总结
2014/12/09 职场文书
2014年政教处工作总结
2014/12/20 职场文书
2015年教师业务工作总结
2015/05/26 职场文书
PhpSpreadsheet中文文档 | Spreadsheet操作教程实例
2021/04/01 PHP
解决vue自定义组件@click点击失效问题
2022/04/30 Vue.js