webpack4与babel配合使es6代码可运行于低版本浏览器的方法


Posted in Javascript onOctober 12, 2018

使用es6+新语法编写代码,可是不能运行于低版本浏览器,需要将语法转换成es5的。那就借助babel转换,再加上webpack打包,实现代码的转换。

转换包括两部分:语法和API

let、const这些是新语法。

new promise()等这些是新API。

简单代码

类库 utils.js

const name = 'weiqinl'

let year = new Date().getFullYear()

export { name, year }

index.js

import _ from 'lodash'

import { name, year } from './utils'



Promise.resolve(year).then(value => {

 console.log(`${name} - ${value} - ${_.add(1, 2)}`)

})

babel转换

安装babel编译器和对应的运行时环境

npm install -D @babel/core @babel/preset-env @babel/plugin-transform-runtime @babel/polyfill

并新建 .babelrc 文件,里面可以配置很多东西,内容为:

{

 "presets": [

  ["@babel/preset-env", {

   "useBuiltIns": "usage",

   "modules": false

  }]

 ],

 "plugins": [

  [

   "@babel/plugin-transform-runtime", {

    "corejs": false,

    "helpers": false,

    "regenerator": false,

    "useESModules": false

   }

  ]

 ],

 "comments": false

}

webpack构建

webpack4,可以零配置构建项目,那是因为它的很多配置值都默认了。在这里,我们需要自己配置。

创建一个 webpack.config.js 文件

const path = require('path');

module.exports = {

 mode: "production",

 entry: ['@babel/polyfill', './src/index.js'],

 output: {

  path: path.resolve(__dirname, 'dist'),

  filename: '[name].bundle.js'

 },

 module: {

  rules: [{

   test: /\.js$/,

   include: [

    path.resolve(__dirname, 'src')

   ],

   exclude: /(node_modules|bower_components)/,

   loader: "babel-loader",

  }]

 }

}

使用

webpack构建打包好的js文件,我们将其引入到html文件。

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="ie=edge">
 <title>webpack-babel-es6</title>
</head>
<body>
 webpack构建由babel转码的es6语法,支持es6语法和API<br />
 请查看浏览器控制台
 <script src="./dist/main.bundle.js"></script>
</body>
</html>

运行该html,可以看到控制台有内容输出 weiqinl - 2018 - 3

最后的目录结构:

webpack4与babel配合使es6代码可运行于低版本浏览器的方法

可以git查看源码https://github.com/weiqinl/demo/tree/master/webpack-bable-es6

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
表格单元格交错着色实现思路及代码
Apr 01 Javascript
javascript解析json数据的3种方式
May 08 Javascript
常见的jQuery选择器汇总
Nov 24 Javascript
JavaScript操作HTML DOM节点的基础教程
Mar 11 Javascript
JS采用绝对定位实现回到顶部效果完整实例
Jun 20 Javascript
JavaScript编程中实现对象封装特性的实例讲解
Jun 24 Javascript
JavaScript蒙板(model)功能的简单实现代码
Aug 04 Javascript
DOM 事件的深入浅出(二)
Dec 05 Javascript
Vue-drag-resize 拖拽缩放插件的使用(简单示例)
Dec 04 Javascript
JavaScript动态生成表格的示例
Nov 02 Javascript
js用正则表达式筛选年月日的实例方法
Jan 04 Javascript
如何在CocosCreator里画个炫酷的雷达图
Apr 16 Javascript
在JS循环中使用async/await的方法
Oct 12 #Javascript
代码实例ajax实现点击加载更多数据图片
Oct 12 #Javascript
vue项目环境变量配置的实现方法
Oct 12 #Javascript
原生JS实现自定义下拉单选选择框功能
Oct 12 #Javascript
原生JS实现轮播图效果
Oct 12 #Javascript
详解KOA2如何手写中间件(装饰器模式)
Oct 11 #Javascript
Element Input组件分析小结
Oct 11 #Javascript
You might like
全国FM电台频率大全 - 21 海南省
2020/03/11 无线电
php数组函数序列之rsort() - 对数组的元素值进行降序排序
2011/11/02 PHP
通用于ie和firefox的函数 GetCurrentStyle (obj, prop)
2006/12/27 Javascript
javascript应用:Iframe自适应其加载的内容高度
2007/04/10 Javascript
JS验证IP,子网掩码,网关和MAC的方法
2015/07/02 Javascript
JS实现对中文字符串进行utf-8的Base64编码的方法(使其与Java编码相同)
2016/06/21 Javascript
Vue中使用vux的配置详解
2017/05/05 Javascript
详解nodejs实现本地上传图片并预览功能(express4.0+)
2017/06/28 NodeJs
十分钟带你快速了解React16新特性
2017/11/10 Javascript
javascript修改浏览器title方法 JS动态修改浏览器标题
2017/11/30 Javascript
vue.js-div滚动条隐藏但有滚动效果的实现方法
2018/03/03 Javascript
ES6 迭代器与可迭代对象的实现
2019/02/11 Javascript
express框架下使用session的方法
2019/07/31 Javascript
countUp.js实现数字滚动效果
2019/10/18 Javascript
Vue页面手动刷新,实现导航栏激活项还原到初始状态
2020/08/06 Javascript
[07:54]DOTA2 MV《我的动力鞋》 ImbaTV 出品
2014/11/21 DOTA
[01:10:49]Secret vs VGJ.S 2018国际邀请赛淘汰赛BO3 第二场 8.24
2018/08/25 DOTA
Python ORM框架SQLAlchemy学习笔记之数据添加和事务回滚介绍
2014/06/10 Python
python实现矩阵乘法的方法
2015/06/28 Python
python学习笔记之调用eval函数出现invalid syntax错误问题
2015/10/18 Python
Python设计模式之工厂模式简单示例
2018/01/09 Python
python实现随机漫步算法
2018/08/27 Python
对python For 循环的三种遍历方式解析
2019/02/01 Python
Python 一行代码能实现丧心病狂的功能
2020/01/18 Python
Python异常原理及异常捕捉实现过程解析
2020/03/25 Python
pandas 像SQL一样使用WHERE IN查询条件说明
2020/06/05 Python
python数据类型强制转换实例详解
2020/06/22 Python
CSS3中颜色线性渐变实战
2015/07/18 HTML / CSS
数控专业个人求职信范例
2013/11/29 职场文书
函授自我鉴定范文
2014/02/06 职场文书
医学求职信
2014/05/28 职场文书
美德少年事迹材料500字
2014/08/19 职场文书
2014年大学生工作总结
2014/11/20 职场文书
同学聚会邀请函
2015/01/30 职场文书
协议书格式模板
2016/03/24 职场文书
html+css合并表格边框的示例代码
2021/03/31 HTML / CSS