解决IE识别ES6语法

2023-11-05

使用jq做项目时,混用了部分es6的语法,导致在IE下项目无法正常运行,于是乎,便在网上找到了下面两种方法,并尝试了一下:

一、直接在浏览器中引入browser.min.js,并且将script的type设置成text/babel

尝试了在网上下载browser.min.js,结果使用时会报错,所以使用下面的方式生成browser.min.js:
1、安装Node
2、node安装成功后,使用npm安装babel
打开命令提示符窗口输入命令:npm install babel-core@5,然后回车,安装成功后在电脑盘中找到目录:C:\Users\Administrator\node_modules\babel-core,在这个目录里面我们找到babel的浏览器版本browser.js(未压缩版)和browser.min.js(压缩版)
3、使用browser.min.js

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <link rel="stylesheet" type="text/css" href="css/style.css" />
        <!-- 引入browser.min.js -->
        <script src="js/browser.min.js"></script>
    </head>
    <body>
        <input type="button" value="测试按钮" onclick="aa()">
    </body>
</html>
<!-- script标签的 type 设置为 text/babel -->
<script type="text/babel">
	// 点击 测试按钮 时,控制台报:aa未定义
    function aa () {
        alert('测试')
    }

    console.log('=====')
    const arr1=[1,2,3]
    const arr2=[...arr1]
    console.log(arr2);              // [1,2,3]
    let arr3=arr2.map((x)=>x*2)
    console.log(arr3);              // [2,4,6]
    const [x,y,z]=[[...arr3]]
    console.log(x);                 // [2,4,6]

    class Point {
        constructor(x, y) {
            this.x = x;
            this.y = y;
        }

        toString() {
            return '(' + this.x + ', ' + this.y + ')';
        }
    }
    console.log(new Point(1, 2).toString());

</script>

注: 这种方法虽然让ie识别了es6的语法,但是text/babel中的代码不被浏览器当做javascript进行解析,所以当点击input时,浏览器会报 aa未定义的 错误

二、通过babel进行es6转es5

1、新建工程初始化项目
新建项目文件夹并起名为es6,然后在里面创建src、dist两个文件夹(其中src目录中为项目源码,即待转换的代码;dist目录中为转换完成的代码),结构如下图:
在这里插入图片描述
2、初始化项目
打开命令提示符窗口,并进入我的项目文件夹中,输入命令:npm init进行初始化项目,按照提示输如相应内容,初始化成功后,项目文件夹中会生成package.json文件
3、安装babel工具
全局安装命令: npm install -g babel-cli
或者
将babel安装在项目中,需要在项目根目录下执行命令:npm install babel-cli --save-dev;同时它会自动在package.json文件中的devDependencies中加入babel-cli

建议使用将babel安装在项目中,防止不同环境下的babel版本不同而报错

4、babel安装成功后,需要安装转换包才能进行转换
输入命令:
npm install --save-dev babel-preset-es2015( ES2015转码规则 )

完成第3、4步后,package.json中会自动添加如下配置信息:
在这里插入图片描述
5、新建 .babelrc
在项目根目录创建.babelrc文件,该文件为babel的配置文件,用来设置转码规则和插件,然后将上面安装的转码规则加入到presets中,内容如下:
在这里插入图片描述
6、进行转换
在命令行窗口输入命令: babel src --out-dir dist或者babel src -d dist可以从src目录转换到dist
或者
通过在package.json文件中设置别名,然后在命令串口输入命令:npm run build来进行编译,如下图:
在这里插入图片描述

babel的基本用法:

  1. 单文件转码:
    将转码结果写入一个文件,通过--out-file-o参数指定输出文件,命令为:
    babel example.js --out-file compiled.js
    或者
    babel example.js -o compiled.js
  2. 整个目录转码:
    通过--out-dir-d参数指定输出目录,命令为:
    babel src --out-dir lib
    或者
    babel src -d lib
  3. 生成source map文件:
    babel src -d lib -s

注: 这种方法只能转换单独的js文件,对于写在html中的js无法转换

总结:对于需要ie兼容的,尽量使用es5的语法,或者对于上面两种方法所碰到的问题,有更好的解决方法的还望告知一下,谢谢…

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

解决IE识别ES6语法 的相关文章

  • Jeff Atwood倾情推荐——程序员必读之书

    英文版 Code Complete 2 中文版 代码大全 第二版 作者 Steve McConnell译者 金戈 汤凌 陈硕 张菲出版社 电子工业出版社出版日期 2007 年8月Jeff Atwood的推荐 Steve McConnell的
  • STM32CubeMX之内部Flash读写

    有时候需要对一些数据进行掉电可存储 一般来说可以把这些数据存储到外部EEPROM或FLASH 如AT24CXX SPI FLASH等 对于一些不需要经常写入的少量数据 可以直接存储到单片机内部FLASH 可以节省成本 前期准备 STM32硬
  • Windows下 VS code +MinGW如何添加安装 pthread.h

    Windows下 VS code MinGW如何添加安装 pthread h 本人墨大学生小白一名 因为专业课中需要用到 pthread h 去编写C语言 网上有很多教程 但我按步骤走后 在编译时依然会出现错误 试了很多种方法 最后使用mi
  • mmdetection1.4训练fasterrcnn

    mmdetection1 4训练fasterrcnn 指定参数文件 urllib error URLError
  • 循环结构中辅助控制break,continue,pass,else

    文章目录 break与continue pass for while循环中的else扩展用法 综合实例 break与continue break语句是结束整个循环的过程 不在判断执行循环的条件是否成立 continue语句只结束本次循环 并
  • 找不到msvcp140.dll无法继续执行代码怎么解决

    msvcp140 dll是Microsoft Visual C 文件中中的一个共享DLL文件 用于执行C 程序的相关运行库 如果计算机上的某个程序缺少msvcp140 dll文件 则该程序将无法正常运行 通常会弹出相关错误提示信息 小编今天
  • 【U盘量产工具】热插拔导致U盘进入写保护——安国主控AU6989SN-GT

    2022 1 20 前言 前两天我爸的车的中控CD机坏了 嫌修车店修太贵了 又不需要升级成触控导航的中控 就想在淘宝上买了一个原厂一模一样的换上 到货了觉得修车店装一下又得几百块 就让我帮他一起装回去了 那东西居然是2011年产的 到现在已
  • linux socat_Linux多用途中继Socat命令教程和示例

    linux socat Linux provides different philosophy and use cases from system point of view socat is very interesting comman
  • 精通SuiteSparse应用与架构01 compile and install

    solve problem libcublas so no such file or directory as cuda10 nvidia put has shiftted the cublas to usrlib x86 64linux
  • 时序预测

    文章目录 效果一览 文章概述 源码设计 参考资料 效果一览 文章概述 时序预测 Matlab实现基于GRNN广义回归神经网络的电力负荷预测模型 1 Matlab实现基于GRNN广义回归神经网络的电力负荷预测模型 2 单变量时间序列预测 3
  • PID控制器的输入量和输出量的物理关系解释

    PID控制器的输入量和输出量的物理关系解释 其实 PID基本找不到输入与输出的单位关系 但是有很强的数的关系 给定的值与反馈的值还存在偏差时 就会调整输出以达到输入与反馈的平衡 在这里 给定的电流值 反馈的也是电流值 PWM控制的是实际的输
  • 一分钟看懂IoC 原理

    本人的概念总结 一分钟让你懂得Ioc原理 1 1 IoC是什么 Ioc Inversion of Control 即 控制反转 不是什么技术 而是一种设计思想 在开发中 Ioc意味着将你设计好的对象交给容器控制 而不是传统的在你的对象内部直
  • 蓝桥杯之单词分析

    题目描述 小蓝正在学习一门神奇的语言 这门语言中的单词都是由小写英文字母组成 有些单词很长 远远超过正常英文单词的长度 小蓝学了很长时间也记不住一些单词 他准备不再完全记忆这些单词 而是根据单词中哪个字母出现得最多来分辨单词 现在 请你帮助
  • 延时函数介绍

    文章目录 基本介绍 一 sleep 二 usleep 三 mdelay 四 udelay 五 ndelay 在操作系统中和单片机处理延时方式就完全不一样了 不可能是使用for循环浪费系统资源 而是有专门的接口函数 基本介绍 Linux 中常
  • 简洁而实用的NAS导航页——Homarr

    前言 为了更好管理家庭内网中部署的各个服务 尤其访问NAS docker中的容器 之前看过一些类似的导航面板 其中这个界面看上去十分简洁 这里自己就记录和分享一下搭建过程 官方网站 Home Homarr Docs 个人环境 支持docke
  • violin plot 小提琴图 matlab R语言 Python

    最近用到violin图 在此总结制作此图的步骤 matlab 需先下载函数文件 https ww2 mathworks cn matlabcentral fileexchange 45134 violin plot 函数中有默认添加 中位数
  • GDB调试详解

    文章目录 调试信息 启动调试 调试进程 调试core文件 GDB调试命令 run continue break backtrace 与 frame info break enable disable delete list print pt
  • 基于深度学习的人脸表情识别开发

    目前深度学习很流行 很大程度减轻了图像开发的难度 表情识别是图像算法的重要研究方向 本文提供一种基于深度学习的表情识别方法 1 获取模型 深度学习的框架比较多 有TF CAFFE PYTORCH KERAS等 然后有很多网络比如resnet
  • 2022年度【产业数字化金铲奖】重磅来袭!

    出品 产业家 第二届金铲奖来了 过去的一年时间里 产业家清晰地看到 数实融合的潮水更加汹涌澎湃且势不可挡 越来越多的企业开始寻求数字化转型 它们来自金融 工业 农业 医疗 能源等等 产业数字化 已经成为当代中国的主旋律 在新的主旋律中 被看

随机推荐

  • OpenWrt之时区设置(夏令时设置)

    今天遇到一个客户关于设置时区问题 涉及到夏令时区 查阅一些资料终于搞明白了 记录如下 因为openwrt是基于linux内核 所以记录一下Linux的时间和时区设置 Linux的时间和时区设置 在linux中与时间相关的文件有 etc lo
  • 如何使用eclipse软件创建一个Java项目?

    同学们在参加Java的时候老师肯定会教给你们如何去创建一个项目 这里怕有些同学没记住 所以单独为大家分享一篇如何使用eclipse软件创建一个Java项目教程 感觉有用的话收藏转发一下 eclipse创建Java项目教程 1 首先我们需要打
  • 将一个Android项目作为另一个Android Library给其他项目使用

    一 eclipse中的使用 开发中如果使用eclipse将一个Android工程作为Android Library给其他项目使用 需要实现的步骤如下 1 将android工程设为库 选择工程右击选择 property gt Android
  • Flutter Plugin调用Native APIs

    关键词 Flutter Flutter Plugin Platform Channel Method Channel Flutter Package Flutter插件 Flutter是Google使用Dart语言开发的一套移动应用开发框架
  • 微信小程序 之 发布流程

    1 前期准备 先想好你的小程序是用来做什么的 是电商 服务预约 知识付费 产品展示 还是团队管理 酒店预订 主要面向的人群都是哪些 现在小程序类型繁多 你一定要对自己有清晰的定位 明确的目标 才能避免把小程序做得乱七八糟 让自己的小程序真正
  • 菜鸟操作:QString和QMap转化(QMap嵌套QMap)

    学习QT的时候遇到一个问题 我想要将QMap转成QString 用于socket通信 查了网上找不到我想到的效果 然后就用一个比较粗糙的做法来实现 以下代码是对于二级QMap操作的 主要思路 将QMap中的数据全都放到QString中 包括
  • 百度人脸识别模块使用分享

    本文出自APICloud官方论坛 感谢鲍永道的分享 首先介绍下百度人脸识别模块 baiduFaceRec baiduFaceRec模块封装了百度AI人脸识别功能 使用此模块可实现百度人脸检测 包括age beauty expression
  • DHT11解析

    一 DHT11工作原理 1 获取数据 DHT11包括一个电阻式感湿元件和一个NTC测温元件 这两个获取温湿度数据的方式都差不多 利用湿 温 敏元件的电气特性 如电阻值 随湿 温 度的变化而变化的原理进行湿 温 度测量 2 数据发送 数据格式
  • SPECjvm 2008 小记

    背景 specjvm2008是免费的 直接官网下载就可以开跑了 但俗话说的好 便宜无好货 没啥厂家买账 看官网列出的成绩公示结果 根本没几家上传成绩 另外 SPECjvm2008本身是测试JRE的执行成绩 也就是java客户端的运行成绩 但
  • IOC的两种容器对比

    Spring的IOC容器是一个提供IOC支持的轻量级容器 Spring提供了两种容器类型 BeanFactory和ApplicationContext BeanFactory 基础类型IOC容器 提供完整的IOC支持 默认采用延迟初始化策略
  • 让Python在退出时强制运行一段代码

    atexit介绍 python atexit 模块定义了一个 register 函数 用于在 python 解释器中注册一个退出函数 这个函数在解释器正常终止时自动执行 一般用来做一些资源清理的操作 atexit 按注册的相反顺序执行这些函
  • qwt之鼠标移动和滚轮滚动

    一 qwt中的鼠标左键平移 主要通过 QwtPlotPanner panner new QwtPlotPanner ui gt qwtPlot gt canvas 这种状态下默认的是鼠标拖动图形 x轴和y轴都可以进行移动 以下实现禁止x轴拖
  • MongoDB快速入门

    一 MongoDB安装配置 1 MongoDB简介 MongoDB 由 databases 组成 databases 由 collections 组成 collections 由documents 相当于行 组成 而documents有fi
  • matlab怎么导出矩阵,如何用matlab 生成矩阵

    随便敲了些和lz类似的关系数字 把你的数字放到这个txt文件里就可以了 比如你有一个txt文件叫numbers txt 里头的数字如下 2 3 1 3 4 1 3 9 1 10 9 1 4 6 1 9 6 1 8 10 1 程序如下 cle
  • 全排列的价值 python实现 蓝桥杯 2137

    问题描述 对于一个排列 A a1 a2 an 定义价值 ci 为 a1 至 ai 1 中小于 ai 的数 的个数 即 ci aj j
  • AI大语言模型时代构建全新数据平台

    在大语言模型的引领下 数据平台领军企业 Databricks 和 Snowflake 的未来重置 探讨了 Databricks 和 Snowflake 等知名平台 存储领域的 Delta udi Iceberg 还是实时化数据处理领域的 D
  • 双向链表的创建以及增删改查

    实现起来其实不难 于是我把代码做了优化 模仿了stm32的库函数哈哈哈 便于理解和修改 不足之处请指出 include stdio h include stdlib h 宏定义 define ElementType int define u
  • 免费java视频教程大全在线观看

    下面是免费java视频教程大全在线观看 尚学堂马士兵报表组件JFreeChart 尚学堂的项目管理工具 尚硅谷java20天 尚硅谷SVN 更多java视频与学习资料大家就到这里了解一下吧 http java 662p com forum
  • Java启动本机应用程序EXE的三种方式

    第一种方式 利用cmd方式 执行cmd命令 param command throws IOException public static String executeCmd String command throws IOException
  • 解决IE识别ES6语法

    使用jq做项目时 混用了部分es6的语法 导致在IE下项目无法正常运行 于是乎 便在网上找到了下面两种方法 并尝试了一下 一 直接在浏览器中引入browser min js 并且将script的type设置成text babel 尝试了在网