万恶的IE遗臭万年仍然需要填坑

  • ie标准对html/css甚至js的规范简直相差甚远,所以,一般要解决的兼容问题很大一部分是为了解决ie的不兼容,虽然目前流行的ES6语法及规范将IE的考虑抛弃掉,默认放弃对IE的治疗,但是IE的兼容仍然是个问题!即使IE的使用率已经不到1%的市场占比。
  • 我们使用着舒服的ES6规范但是为IE又很头疼怎么办呢?Webpack开发了非常厉害的打包转换功能:转ES5!

随便来个ES6代码

  • 就写个let声明和遍历:
console.log("webpack 1");
let date = ["hello", "world", "this", "is", "es6", "code"];((theDate) => {theDate.forEach(item => console.log(item));
})(date)

这是在Chrome浏览器里的结果

这是在火狐浏览器的结果:

这是ie11浏览器的结果:

完全不出意料哈!我们来转一转。

  • 这里我们先做一个修改,用导入的办法把ES6代码挪到打包的js代码文件中:
    原index.js:
console.log("webpack 1");
let fun = () => {let date = ["hello", "world", "this", "is", "es6", "code"];date.forEach(item => console.log(item));
}
//fun() //结果依然刚才一样
export default fun;//es6导出函数,es6模块化知识

Can’t find @babel/core 问题

  • 以前安装打包需要的插件或者说是工具包:
npm install babel-core babel-loader babel-preset-es2015 --save-dev
#因为是开发测试环境,就加了dev,各自根据需要更改保存参数
  • 没错,因为版本兼容问题,最新的8.x版本babel-loader读取babel-core发生了改变,因此我们要安装对应匹配的版本:
#webpack 4.x | babel-loader 8.x | babel 7.x 最新版本
npm install -D babel-loader @babel/core @babel/preset-env
#webpack 4.x | babel-loader 7.x | babel 6.x 版本
npm install -D babel-loader@7 babel-core babel-preset-env webpack
  • 我这里使用的是7.x版本:

  • 创建babel工具的配置文件:.babelrc
{"presets": ["es2015"], "plugins": []
}

  • 配置打包规则:
module: {rules: [{test: /\.js$/,use: 'babel-loader',exclude: /node_modules/}]
}

  • webpack执行,生成test.html

  • 浏览器的效果:
    Chrome

IE

代码成功在IE上运行了

  • 我们再看看打包转换成的es5长啥样:

es6转es5到此结束。

Webpack——ES6转ES5相关推荐

  1. webpack es6转es5

    首先下载babel-loader npm install --save-dev babel-loader@7 babel-core babel-preset-es2015 要在最外部输入指令不然会报错 ...

  2. es5直接引入html文件,ES6+转ES5(webpack+babel、指定多个js文件、自动注入)

    接续上篇ES6+转ES5,本篇将使用webpack和babel将多个不同目录下指定的多个ES6+语法的js文件编译为ES5,并将编译后的文件配置注入对应的html文件. 一.新建项目,目录如下 二.执 ...

  3. webpack打包ES6降级ES5

    Babel是一个广泛使用的转码器,babel可以将ES6代码完美地转换为ES5代码,所以我们不用等到浏览器的支持就可以在项目中使用ES6的特性. 安装babel实现ES6到ES5 npm instal ...

  4. webpack实现es6转换为es5

    Webpack实现es6转换为es5 安装插件 npm install --save-dev babel-loader @babel/core @babel/preset-env 配置 在webpac ...

  5. webpack 处理es6转es5需要使用babel-loader

    webpack 处理es6转es5需要使用babel-loader 1.假设你已经熟悉webpack基本环境的搭建 npm init -y 2,创建webpack.confg.js文件 3.安装bab ...

  6. gulp之ES6转ES5

    导读 默认的gulp打包编译,是不支持es6语法,所以我们需要引入babel进行转换编译 步骤 1.安装es6转es5所需要的所有npm依赖包 //babel 依赖的包 但是看babel官方说并没有依 ...

  7. babel ES6 转换 ES5 实现原理

    babel ES6 转换 ES5 实现原理 前言 babel 各种包介绍 转换过程 案例 前言 前面写过一篇简单的 AST 抽象语法树的文章 简述 AST 抽象语法树.今天来看一下在 babel 中是 ...

  8. vue es6转es5 保证浏览器兼容性

    vue cli es6转es5 保证浏览器兼容性 安装 在根目录下创建.babelrc文件 IE报vuex requires a Promise polyfill in this browser问题解 ...

  9. 记录一次es6转es5的填坑历程

    背景 随着前端的技术的不断发展,JavaScript也在不断地版本迭代,但是浏览器厂商如果不支持新版的js,那么对于前端同学来说是一场灾难,最近小飞就遇到了这样的一个问题,好好的Vue项目在低版本安卓 ...

最新文章

  1. 详解物联网的中间件:为何说它是不可或缺的?
  2. 实现O(1)时间复杂度带有min和max 函数的栈
  3. python朋友圈为什么这么火-利用Python让你的微信朋友圈与众不同,更加高大上
  4. 在WebStorm里配置watcher实现编辑less文件时自动生成.map和压缩后的.css文件
  5. 计算机基础知识作业答案,计算机基础与应用作业答案ID及计算机基础知识笔试题.doc...
  6. synchronize原理
  7. 引入ReactiveInflux:用于Scala和Java的无阻塞InfluxDB驱动程序,支持Apache Spark
  8. kotlin 计算平方_Kotlin程序来计算复利
  9. met40如何升级成鸿蒙系统,再见了,EMUI11!你好,华为鸿蒙!
  10. JDK1.8的新特性详解
  11. 【java】java 并发编程 Condition 源码分析
  12. 从数学的视角看社交网络
  13. 计算机硬件现状及发展,计算机硬件的发展历史以及计算机的现状和发展趋势
  14. 漫画:面试过程的神回复
  15. 华为VLAN隔离配置
  16. ie首页被篡改解决方法 ie浏览器 ie浏览器首页设置 iexplore.exe触犯注册表防护规则
  17. 智齿科技获投B轮融资5000万人民币
  18. springboot大学校园网上图书馆信息管理系统的设计与实现小程序毕业设计源码091535
  19. ARTS 2019 05 05 (29)
  20. Win10样式管理与夜间模式

热门文章

  1. 吴恩达机器学习[9]-神经网络学习
  2. 2022大学生免费(24元)申请个人软著专利(微信小程序)
  3. 什么是软件危机?软件危机的主要表现是什么?什么是软件?什么是软件工程?什么是软件过程?软件过程与软件工程方法学有何关系?​​​​​​​什么是软件开发方法?软件开发方法主要有哪些?
  4. 量产大厂成熟Foc电机控制代于电动自行车电机Foc控制源码
  5. VSCode、notepa++列选择(垂直选中)快捷键方法
  6. shell易错点整理
  7. 汇编 浮点指令FLD,FSTP,FADD与FPU寄存器
  8. Linux内核是什么?Linux内核是怎么工作的?
  9. C语言——归并排序,单线程,多线程(Linux系统下实现)两种实现方法
  10. K8s --HPA容器水平伸缩