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 相关文章推荐
优化网页之快速的呈现我们的网页
Jun 29 Javascript
利用js跨页面保存变量做菜单的方法
Jan 17 Javascript
层序遍历在ExtJs的TreePanel中的应用
Oct 16 Javascript
不使用浏览器运行javascript代码的方法
Jul 24 Javascript
javascript Array.prototype.slice的使用示例
Nov 14 Javascript
node.js中的events.emitter.removeAllListeners方法使用说明
Dec 10 Javascript
jQuery中map()方法用法实例
Jan 06 Javascript
jQuery过滤选择器经典应用
Aug 18 Javascript
Angular2 组件交互实例详解
Aug 24 Javascript
vue拖拽排序插件vuedraggable使用方法详解
Aug 21 Javascript
vue实现购物车的监听
Apr 20 Javascript
Openlayers实现地图的基本操作
Sep 28 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
PHP中遍历stdclass object的实现代码
2011/06/09 PHP
PHP PDO fetch 模式各种参数的输出结果一览
2015/01/07 PHP
PHP中使用Imagick实现各种图片效果实例
2015/01/21 PHP
Yii获取当前url和域名的方法
2015/06/08 PHP
PHP调用API接口实现天气查询功能的示例
2017/09/21 PHP
WordPress 插件——CoolCode使用方法与下载
2007/07/02 Javascript
jquery 屏蔽一个区域内的所有元素,禁止输入
2009/10/22 Javascript
JavaScript入门之对象与JSON详解
2011/10/21 Javascript
js中浮点型运算BUG的解决方法说明
2014/01/06 Javascript
js创建对象的区别示例介绍
2014/07/24 Javascript
javascript工厂方式定义对象
2014/12/26 Javascript
javascript实现获取浏览器版本、操作系统类型
2015/01/29 Javascript
简述AngularJS的控制器的使用
2015/06/16 Javascript
[原创]Bootstrap 中下拉菜单修改成鼠标悬停直接显示
2016/04/14 Javascript
Web Uploader文件上传插件使用详解
2016/05/10 Javascript
Vue学习笔记进阶篇之多元素及多组件过渡
2017/07/19 Javascript
详解vuex commit保存数据技巧
2018/12/25 Javascript
vue3 源码解读之 time slicing的使用方法
2019/10/31 Javascript
Vue+penlayers实现多边形绘制及展示
2020/12/24 Vue.js
python多线程编程方式分析示例详解
2013/12/06 Python
分析Python编程时利用wxPython来支持多线程的方法
2015/04/07 Python
详解Python实现多进程异步事件驱动引擎
2017/08/25 Python
通过python+selenium3实现浏览器刷简书文章阅读量
2017/12/26 Python
Python实现报警信息实时发送至邮箱功能(实例代码)
2019/11/11 Python
Windows系统下pycharm中的pip换源
2020/02/23 Python
Python通过kerberos安全认证操作kafka方式
2020/06/06 Python
python如何代码集体右移
2020/07/20 Python
HTML5+CSS3 诱人的实例:3D立方体旋转动画实例
2016/12/30 HTML / CSS
Shopbop中文官网:美国亚马逊旗下时尚购物网站
2020/12/15 全球购物
写出程序把一个链表中的接点顺序倒排
2014/04/28 面试题
环境工程专业自荐信
2014/03/03 职场文书
《蚕姑娘》教学反思
2014/04/15 职场文书
社区巾帼文明岗事迹材料
2014/06/03 职场文书
员工给公司的建议书
2019/06/24 职场文书
Ajax实现异步加载数据
2021/11/17 Javascript
Python制作表白爱心合集
2022/01/22 Python