详解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 动态添加样式规则 W3C校检
Dec 25 Javascript
为Extjs加加速(javascript加速)
Aug 19 Javascript
javascript实现div的拖动并调整大小类似qq空间个性编辑模块
Dec 12 Javascript
Angular的模块化(代码分享)
Dec 26 Javascript
JavaScript中数组Array.sort()排序方法详解
Mar 01 Javascript
详解webpack 配合babel 将es6转成es5 超简单实例
May 02 Javascript
基于vue 开发中出现警告问题去除方法
Jan 25 Javascript
Node.js 利用cheerio制作简单的网页爬虫示例
Mar 01 Javascript
vue车牌号校验和银行校验实战
Jan 23 Javascript
JS实现的定时器展示简单秒表、页面弹框及跳转操作完整示例
Jan 26 Javascript
JavaScript监听一个DOM元素大小变化
Apr 26 Javascript
Angular+ionic实现折叠展开效果的示例代码
Jul 29 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
Banner程序
2006/10/09 PHP
php simplexmlElement操作xml的命名空间实现代码
2011/01/04 PHP
表单内同名元素的控制
2006/11/22 Javascript
jQuery函数map()和each()介绍及异同点分析
2014/11/08 Javascript
JS实现5秒钟自动封锁div层的方法
2015/02/20 Javascript
JavaScript操作Cookie详解
2015/02/28 Javascript
非常酷炫的Bootstrap图片轮播动画
2016/05/27 Javascript
详解闭包解决jQuery中AJAX的外部变量问题
2017/02/22 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(一)
2017/05/11 Javascript
详解微信小程序设置底部导航栏目方法
2017/06/29 Javascript
Angular.js中数组操作的方法教程
2017/07/31 Javascript
使用Node.js实现简易MVC框架的方法
2017/08/07 Javascript
通过vue提供的keep-alive减少对服务器的请求次数
2018/04/01 Javascript
vue项目打包后打开页面空白解决办法
2018/06/29 Javascript
vue.js内置组件之keep-alive组件使用
2018/07/10 Javascript
在vue项目中使用md5加密的方法
2018/09/14 Javascript
Koa日志中间件封装开发详解
2019/03/09 Javascript
js实现拖动缓动效果
2020/01/13 Javascript
python实现的简单RPG游戏流程实例
2015/06/28 Python
老生常谈Python startswith()函数与endswith函数
2017/09/08 Python
Pandas之MultiIndex对象的示例详解
2019/06/25 Python
python Django的web开发实例(入门)
2019/07/31 Python
tensorflow ckpt模型和pb模型获取节点名称,及ckpt转pb模型实例
2020/01/21 Python
python logging设置level失败的解决方法
2020/02/19 Python
django model object序列化实例
2020/03/13 Python
使用tensorflow根据输入更改tensor shape
2020/06/23 Python
使用Django的JsonResponse返回数据的实现
2021/01/15 Python
CSS实现雨滴动画效果的实例代码
2019/10/08 HTML / CSS
法国综合购物网站:RueDuCommerce
2016/09/12 全球购物
MCAKE蛋糕官方网站:一直都是巴黎的味道
2018/02/06 全球购物
英文版网络工程师求职信
2013/10/28 职场文书
单位刻章介绍信范文
2014/01/11 职场文书
社区敬老月活动实施方案
2014/02/17 职场文书
市场总经理岗位职责
2014/04/11 职场文书
师德师风个人自我剖析材料
2014/09/27 职场文书
AudioContext 实现音频可视化(web技术分享)
2022/02/24 Javascript