详解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高级程序设计阅读笔记(五) ECMAScript中的运算符(一)
Feb 27 Javascript
JQuery select控件的相关操作实现代码
Sep 14 Javascript
基于jQuery实现收缩展开功能
Mar 18 Javascript
BootStrap Typeahead自动补全插件实例代码
Aug 10 Javascript
Ajax的概述与实现过程
Nov 18 Javascript
基于js实现的限制文本框只可以输入数字
Dec 05 Javascript
BootStrap栅格系统、表单样式与按钮样式源码解析
Jan 20 Javascript
详解在vue-cli项目中安装node-sass
Jun 21 Javascript
js传递数组参数到后台controller的方法
Mar 29 Javascript
详解VUE里子组件如何获取父组件动态变化的值
Dec 26 Javascript
vue引入微信sdk 实现分享朋友圈获取地理位置功能
Jul 04 Javascript
浅谈layui 绑定form submit提交表单的注意事项
Oct 25 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并发查询MySQL的实例代码
2017/08/09 PHP
解决Laravel自定义类引入和命名空间的问题
2019/10/15 PHP
javascript 动态设置已知select的option的value值的代码
2009/12/16 Javascript
JS 获取滚动条高度示例代码
2013/10/24 Javascript
js的参数有长度限制吗?发现不能超过2083个字符
2014/04/20 Javascript
jQuery Migrate 1.1.0 Released 注意事项
2014/06/14 Javascript
js获取url传值的方法
2015/12/18 Javascript
JavaScript原型及原型链终极详解
2016/01/04 Javascript
JQuery的attr 与 val区别
2016/06/12 Javascript
Javascript中this绑定的3种方法与比较
2016/10/13 Javascript
jQuery中delegate()方法的用法详解
2016/10/13 Javascript
JS取数字小数点后两位或n位的简单方法
2016/10/24 Javascript
AngularJS入门教程之表单校验用法示例
2016/11/02 Javascript
bootstrap轮播图示例代码分享
2017/05/17 Javascript
JS原形与原型链深入详解
2020/05/09 Javascript
vue动画—通过钩子函数实现半场动画操作
2020/08/09 Javascript
[09:34]2018DOTA2国际邀请赛寻真——永不放弃的iG
2018/08/14 DOTA
pyqt4教程之messagebox使用示例分享
2014/03/07 Python
python安装cx_Oracle模块常见问题与解决方法
2017/02/21 Python
用Python批量把文件复制到另一个文件夹的实现方法
2019/08/16 Python
学Python 3的理由和必要性
2019/11/19 Python
python网络编程:socketserver的基本使用方法实例分析
2020/04/09 Python
Python代码注释规范代码实例解析
2020/08/14 Python
python中time.ctime()实例用法
2021/02/03 Python
电厂厂长岗位职责
2014/01/02 职场文书
学生宿舍管理制度
2014/01/30 职场文书
工地安全检查制度
2014/02/04 职场文书
大学生学年自我鉴定
2014/02/10 职场文书
代办委托书怎么写
2014/08/01 职场文书
学生偷窃检讨书
2014/09/25 职场文书
银行授权委托书格式
2014/10/10 职场文书
财务审计整改报告
2014/11/06 职场文书
2014年反腐倡廉工作总结
2014/12/05 职场文书
质量负责人岗位职责
2015/02/15 职场文书
Pytest allure 命令行参数的使用
2021/04/18 Python
mysql sock 文件解析及作用讲解
2022/07/15 MySQL