es6语法转es5并压缩混淆代码,对兼容和性能做优化

需求分析

1、用es6的语法写了一个工具类
2、需要兼容除chrome外较新的浏览器
3、隐藏源码、缩小网络消耗

利用工具

  • babel 用于es6转换es5
  • uglifyjs 用于压缩混淆

步骤

1、初始化一个项目

npm init -y

2.安装babel及uglifyjs

npm install babel-preset-es2015 babel-cli --save-dev

npm install uglify-js --save-dev

npm install uglify-es --save-dev  //支持es6语法

3.项目根目录下新建文件 babel.config.js, 写入如下配置

module.exports = {
  "presets": [
    "es2015"
  ],
  "plugins": []}

4.在 package.json 写入脚本

"scripts": {
    "build": "babel js/printmap.js -o js/printmap-new.js",
    "uglifyjs": "uglifyjs js/printmap-new.js -m -c -o js/printmap.min.js"
},

build :利用babel进行语法转换,-o前为输入文件路径,后为输出文件路径
uglifyjs :进行代码混淆压缩(uglifyjs不支持ES6语法,所以需要先转换)

1. 输出: -o 输出的文件名2. 压缩: -c3. 混淆: -m

5、打开控制台先执行build、后执行uglifyjs,得到如下文件如下

es6语法转es5并压缩混淆代码相关推荐

  1. 将ES6的语法转为ES5(为了兼容 ES5) (Babel)

    掌握 ES6 之后,如果你的业务需要考虑 ES5 的兼容性,则可以这样做:写 ES6 语法的 js 代码,然后通过 Babel将 ES6 转换为 ES5.如果没有这样的需要,那么下面的内容,了解即可. ...

  2. webpack之配置es6转换成es5

    webpack之配置es6转换成es5 为什么要将代码中的es6语法转换成es5语法呢?这是因为有些浏览器无法识别es6语法.而webpack在不借助babel的情况下,只能对js进行打包处理,无法将 ...

  3. 华为手机自带浏览器不支持 ES6 语法

    原文地址:https://caochangkui.github.io/huawei-es6/ 华为手机自带浏览器对 es6 语法的支持度极差,哪怕最新的荣耀10 手机也有该毛病!所以,移动端项目开发中 ...

  4. Java 压缩/混淆 JavaScript 代码

    基本上都是自己写的工具构建前端工程,压缩/混淆 JavaScript 代码的工具必不可少.我们是 Java 平台的,就是说用 Java 去压缩 JS,这样比较方便.虽然咱们可以外部调用 node 等专 ...

  5. 使用UglifyJS实现将js代码压缩混淆

    使用UglifyJS进行js代码压缩混淆(混淆后的代码的可读性是较高的,这里主要是压缩体积) 安装:全局:npm install uglify-js -g 局部:npm install uglify- ...

  6. React使用ES6语法重构组件代码

    首次使用react,要注意react不同版本库,是ES5还是ES6的写法,如何做到统一.下面对于ES6语法重构组件的代码如下: (1)原始代码: <script type="text/ ...

  7. join为什么每个字符都分割了 js_为什么 webpack4 默认支持 ES6 语法的压缩?

    在专栏课程里,有位同学提到过一个很有意思的问题:"我没装 babel,js 入口里写了个箭头函数,运行 webpack 构建命令后,也成功编译了.这是为什么?".今天就带领大家一起 ...

  8. 如何利用babel工具将es6语法转换成es5语法

    如何利用babel工具将es6语法转换成es5语法 一.很多同学疑问既然es6已经出来的了,为很莫写完es6语法还要把他转换成es5,这不是脱裤子放屁吗? ECMAScript 6(ES6)的发展速度 ...

  9. html 混淆压缩,前端代码的精简、混淆、压缩和编译

    几个基本概念 在网站部署前,我们往往要对前端的代码进行发布,我这里说的"发布",指的就是精简.混淆.压缩.编译等. 1.精简: 目的是减少代码体积,减小网络传输时间,提高页面响应. ...

最新文章

  1. Android中设置组件多进程
  2. CPU-内存-IO-网络调优
  3. Java获取上一周、上一个月、上一年的时间
  4. 深度学习的实用层面 —— 1.8 其它正则化方法
  5. D3 svg text标签控制
  6. tensorflow之数据加载
  7. 【字符编码系列】常用的几种字符编码(GBK,UTF-8,UTF-16)
  8. 优家益购——JavaWeb项目(Jsp+Servlet+MySQL+tomcat)
  9. 查找微信公众号服务器地址,手把手教大家搭建微信公众号查题功能
  10. Python学习笔记(7)文件读写2 Numpy
  11. “趁年轻,浙样爱”陈晓景甜领衔春日恋爱宣言
  12. Linux root用户及权限管理
  13. WEB测试番外之----XSS攻击
  14. 华为路由器负载均衡_华为OSPF路由负载分担配置示例
  15. 计算机管理器自动弹出,win7打开IE浏览器自动弹出管理加载项窗口解决方法
  16. uni-app 180查看好友朋友圈完善(一)
  17. latex 矩阵分块(block matrix)
  18. win10计算机恢复,win10 重置电脑 选择哪个?要恢復到新电脑的那样
  19. 本特利Bently 330400_330425通用型加速度计功能与特点
  20. div阻止点击穿透+实现点击穿透

热门文章

  1. 戴尔台式机进入bios的方法
  2. 使用HbuilderX做一个软件并完成云打包——教程
  3. win11怎么更改图片格式
  4. 第10章 Pry, 强大的pry-rails和相关的几个好用gem
  5. 许家印造车背后的大格局与大战略
  6. 数据压缩 Huffman编码
  7. 【day15】每日强训编程题——查找输入整数二进制中1的个数手套
  8. 计算机音乐作品,关于建立声乐作品计算机音乐伴奏曲库的一些思考
  9. 【Java 基础】静态常量放在 class 类中还是放在 interface 中
  10. git clone下来的代码放在哪里,如何放在指定路径