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 相关文章推荐
由prototype_1.3.1进入javascript殿堂-类的初探
Nov 06 Javascript
Jquery实现页面加载时弹出对话框代码
Apr 19 Javascript
setTimeout()递归调用不加引号出错的解决方法
Sep 05 Javascript
JS动态显示表格上下frame的方法
Mar 31 Javascript
JavaScript在Android的WebView中parseInt函数转换不正确问题解决方法
Apr 25 Javascript
jQuery实现的多滑动门,多选项卡效果代码
Mar 28 Javascript
jQuery实现的图片轮播效果完整示例
Sep 12 Javascript
jQuery输入框密码的显示隐藏【代码分享】
Apr 29 jQuery
jquery实现tab选项卡切换效果(悬停、下方横线动画位移)
May 05 jQuery
Vue.js中的图片引用路径的方式
Jul 28 Javascript
vue指令v-html使用过滤器filters功能实例
Oct 25 Javascript
vue 路由meta 设置导航隐藏与显示功能的示例代码
Sep 04 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
2006/11/25 PHP
PHP中开启gzip压缩的2种方法
2015/01/31 PHP
php微信公众平台开发之获取用户基本信息
2015/08/17 PHP
Laravel中错误与异常处理的用法示例
2018/09/16 PHP
PHP+MySql实现一个简单的留言板
2020/07/19 PHP
javascript学习笔记(二) js一些基本概念
2012/06/18 Javascript
JavaScript中的onerror事件概述及使用
2013/04/01 Javascript
引用外部脚本时script标签关闭的写法
2014/01/20 Javascript
js判断ie版本号的简单实现代码
2014/03/05 Javascript
jquery ajax请求方式与提示用户正在处理请稍等
2014/09/01 Javascript
JavaScript不使用prototype和new实现继承机制
2014/12/29 Javascript
jQuery验证元素是否为空的两种常用方法
2015/03/17 Javascript
JavaScript常用基础知识强化学习
2015/12/09 Javascript
在javascript中创建对象的各种模式解析
2016/05/16 Javascript
jQuery获取多种input值的简单实现方法
2016/06/20 Javascript
10分钟掌握XML、JSON及其解析
2020/12/06 Javascript
js字符串操作总结(必看篇)
2016/11/22 Javascript
Vue中保存用户登录状态实例代码
2017/06/07 Javascript
form表单数据封装成json格式并提交给服务器的实现方法
2017/12/14 Javascript
jquery+ajaxform+springboot控件实现数据更新功能
2018/01/22 jQuery
Bootstrap模态对话框用法简单示例
2018/08/31 Javascript
jQuery实现html可联动的百分比进度条
2020/03/26 jQuery
[01:04]DOTA2:伟大的Roshan雕塑震撼来临
2015/01/30 DOTA
python机器学习之神经网络(一)
2017/12/20 Python
python正则表达式去除两个特殊字符间的内容方法
2018/12/24 Python
Python 50行爬虫抓取并处理图灵书目过程详解
2019/09/20 Python
学习python需要有编程基础吗
2020/06/02 Python
Html5 new XMLHttpRequest()监听附件上传进度
2021/01/14 HTML / CSS
外包公司软件测试工程师
2014/11/01 面试题
酒店管理毕业生自荐信
2013/10/24 职场文书
写给同事的离职感言
2015/08/04 职场文书
FP-growth算法发现频繁项集——构建FP树
2021/06/24 Python
MySQL数据库中varchar类型的数字比较大小的方法
2021/11/17 MySQL
微信小程序 根据不同用户切换不同TabBar
2022/04/21 Javascript
html中相对位置与绝对位置的具体使用
2022/05/15 HTML / CSS
CSS SandBox应用场景及常见问题
2022/06/25 HTML / CSS