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 相关文章推荐
索趣科技的答案
Feb 07 Javascript
cnblogs中在闪存中屏蔽某人的实现代码
Nov 14 Javascript
jQuery学习笔记之创建DOM元素
Jan 19 Javascript
原生JS实现图片轮播效果
Dec 26 Javascript
基于Marquee.js插件实现的跑马灯效果示例
Jan 25 Javascript
vue实现全选、反选功能
Nov 17 Javascript
深入探究AngularJs之$scope对象(作用域)
Jul 20 Javascript
基于Datatables跳转到指定页的简单实例
Nov 09 Javascript
vue使用监听实现全选反选功能
Jul 06 Javascript
JS实现select选中option触发事件操作示例
Jul 13 Javascript
angularjs手动识别字符串中的换行符方法
Oct 02 Javascript
在vue中封装方法以及多处引用该方法详解
Aug 14 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
什么是MVC,好东西啊
2007/05/03 PHP
php项目打包方法
2008/02/18 PHP
用Json实现PHP与JavaScript间数据交换的方法详解
2013/06/20 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
2018/06/13 PHP
php 可变函数使用小结
2018/06/12 PHP
javascript qq右下角滑出窗口 sheyMsg
2010/03/21 Javascript
js下获取div中的数据的原理分析
2010/04/07 Javascript
window.onresize 多次触发的解决方法
2013/11/08 Javascript
JavaScript在Android的WebView中parseInt函数转换不正确问题解决方法
2015/04/25 Javascript
javascript实现实时输出当前的时间
2015/04/27 Javascript
基于JavaScript实现点击页面任何位置返回
2016/08/31 Javascript
js正则表达式注册页面表单验证
2016/10/11 Javascript
微信小程序 教程之WXML
2016/10/18 Javascript
JS中作用域和变量提升(hoisting)的深入理解
2016/10/31 Javascript
详解微信小程序 template添加绑定事件
2017/06/23 Javascript
javaScript之split与join的区别(详解)
2017/11/08 Javascript
vue.js实现的全选与全不选功能示例【基于elementui】
2018/12/03 Javascript
一文读懂ES7中的javascript修饰器
2019/05/06 Javascript
layui表格设计以及数据初始化详解
2019/10/26 Javascript
JS eval代码快速解密实例解析
2020/04/23 Javascript
在Vue中创建可重用的 Transition的方法
2020/06/02 Javascript
讲解Python中fileno()方法的使用
2015/05/24 Python
Python 数据结构之旋转链表
2017/02/25 Python
python学习之matplotlib绘制散点图实例
2017/12/09 Python
解决win64 Python下安装PIL出错问题(图解)
2018/09/03 Python
在python下读取并展示raw格式的图片实例
2019/01/24 Python
Python分布式进程中你会遇到的问题解析
2019/05/28 Python
解决python中的幂函数、指数函数问题
2019/11/25 Python
CSS3效果:自定义“W”形运行轨迹实例
2017/03/29 HTML / CSS
美国球鞋寄卖网站:Stadium Goods
2018/05/09 全球购物
免税水晶:Duty Free Crystal
2019/05/13 全球购物
精致的手工皮鞋:Shoe Embassy
2019/11/08 全球购物
综合实践教学反思
2014/01/31 职场文书
商场消防演习方案
2014/02/12 职场文书
党风廉政建设责任书
2014/04/14 职场文书
中秋节随笔
2015/08/15 职场文书