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 相关文章推荐
用JQuery 实现AJAX加载XML并解析的脚本
Jul 25 Javascript
jQuery如何实现点击页面获得当前点击元素的id或其他信息
Jan 09 Javascript
jquery预览图片实现鼠标放上去显示实际大小
Jan 16 Javascript
jQuery简单图表peity.js使用示例
May 02 Javascript
跟我学习javascript的基本类型和引用类型
Nov 16 Javascript
jquery弹出遮掩层效果【附实例代码】
Apr 28 Javascript
谈谈PHP中相对路径的问题与绝对路径的使用
Aug 16 Javascript
js多个物体运动功能实例分析
Dec 20 Javascript
Vue.js对象转换实例
Jun 07 Javascript
layuiAdmin循环遍历展示商品图片列表的方法
Sep 16 Javascript
JavaScript判断浏览器版本的方法
Nov 03 Javascript
JS加载解析Markdown文档过程详解
May 19 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
PHP4和PHP5共存于一系统
2006/11/17 PHP
在PHP中养成7个面向对象的好习惯
2010/07/17 PHP
php获取ip的三个属性区别介绍(HTTP_X_FORWARDED_FOR,HTTP_VIA,REMOTE_ADDR)
2012/09/23 PHP
Zend的Registry机制的使用说明
2013/05/02 PHP
Laravel框架实现发送短信验证功能代码
2016/06/06 PHP
thinkPHP框架实现的无限回复评论功能示例
2018/06/09 PHP
实例讲解PHP表单处理
2019/02/15 PHP
客户端静态页面玩分页
2006/06/26 Javascript
javascript数组去掉重复
2011/05/12 Javascript
js实现页面跳转重定向的几种方式
2014/05/29 Javascript
JavaScript常用数组算法小结
2016/02/13 Javascript
ionic隐藏tabs的方法
2016/08/29 Javascript
微信小程序 轮播图swiper详解及实例(源码下载)
2017/01/11 Javascript
video.js使用改变ui过程
2017/03/05 Javascript
js排序与重组的实例讲解
2017/08/28 Javascript
Angular CLI 安装和使用教程
2017/09/13 Javascript
小程序测试后台服务的方法(ngrok)
2019/03/08 Javascript
基于javascript canvas实现五子棋游戏
2020/07/08 Javascript
javascript运行机制之执行顺序理解
2020/08/03 Javascript
JavaScript手写数组的常用函数总结
2020/11/22 Javascript
用smtplib和email封装python发送邮件模块类分享
2014/02/17 Python
使用django的ORM框架按月统计近一年内的数据方法
2019/07/18 Python
Python实现性能自动化测试竟然如此简单
2019/07/30 Python
使用Python构造hive insert语句说明
2020/06/06 Python
Python实现FTP文件定时自动下载的步骤
2020/12/19 Python
Python读取pdf表格写入excel的方法
2021/01/22 Python
CSS3中设置3D变形的transform-style属性详解
2016/05/23 HTML / CSS
利用HTML5中Geolocation获取地理位置调用Google Map API在Google Map上定位
2013/01/23 HTML / CSS
英国书籍、CD、DVD和游戏的第一道德零售商:Awesome Books
2020/02/22 全球购物
基层党建工作宣传标语
2014/06/24 职场文书
2014乡镇班子个人对照检查材料思想汇报
2014/09/26 职场文书
美丽的大脚观后感
2015/06/03 职场文书
公司职员入党自传书
2015/06/26 职场文书
驾驶员管理制度范本
2015/08/06 职场文书
《最后一头战象》教学反思
2016/02/16 职场文书
大学生入党自我鉴定范文
2019/06/21 职场文书