自制js编译压缩小工具

自制js编译压缩小工具

点点

2021-03-25 09:13 阅读 410 喜欢 0

关于js的编译和压缩,之前做过一个小工具了,主要就是自己项目成员大都没有这部分的技能,导致发布的时候总需要去编译压缩下.. 最终做了个命令行小工具.. 问题不在这里,前一阵子做压缩的时候发现压缩后竟然是undefined.最终才发现是es6的语法问题。

bug : 通过uglify-js 压缩js文件后文件内容为undefined

在对某个项目内的js文件做压缩的时候,发现了这个问题。结果发现是uglify-js不支持es6的语法和api。

最终只能通过babel来进行编译。

解决: compress 命令行工具

对之前封装的命令行工具compressj2 做了改版。

核心代码

let babel = require('@babel/core'); let baseCode = let {a} = {a :'name'}; babel.transform(baseCode, { presets: [ ['@babel/preset-env', { "useBuiltIns": "entry", "modules": false, "corejs": 2, // 新版本的@babel/polyfill包含了core-js@2和core-js@3版本,所以需要声明版本,否则webpack运行时会报warning,此处暂时使用core-js@2版本(末尾会附上@core-js@3怎么用) }] ] }, function(erra, result) { if (erra) { console.log('>>:' + filePath); console.log(erra); } else { console.log(result.code); } }); babel的版本是7以上,与之前的老版本会有差异。这个一定要注意。

关于babel的使用,参考https://segmentfault.com/a/1190000019718925

命令行的使用

安装

npm install compressjs2 -g

使用

compress //压缩当前目录下所有js并替换 compress -d /home/js //压缩目标目录下js并替换 compress -d /home/js -o /home/build //压缩目标目录下js并输出到/home/build目录下 compress -c //美化压缩后的js文件 compress -l //递归循环调用所有目录,否则只有当前级别

注意

//本工具中对js的编译的以上代码,很多api并没有增加,主要是对语法进行编译。 对babel的使用很粗浅,不过目前可以满足现有的环境要求。 以后项目再发布做编译压缩的时候.. 只需要一个简单的命令compress 就OK啦。

转载请注明出处: http://sdxlp.cn/article/压缩.html


如果对你有用的话,请赏给作者一个馒头吧 ...或帮点下页面底部的广告,感谢!!

赞赏支持
提交评论
评论信息(请文明评论)
暂无评论,快来快来写想法...
推荐
做个nodejs的项目,使用了thinkjs 3.0 的框架,编辑器为vs code ,之前用的好好的,每次 . 后都有提示的,可是使用了多模块后发现.. model的提示没有了..vs code 可以加插件,于是准备做个简易的插件自用
在短视频兴起的时代,一款好用的视频剪辑工具是我们必备的,而目前剪映有电脑版的软件可以供小伙伴使用了。如果遇到了拥有非常好听的背景音乐的视频文件,那么此时我们应该怎么将视频中的音频分离出来呢?
现在时下qq是很多年轻的小伙伴重要的交流工具,很多热恋的情侣,整天没日没夜私发双方的照片。可也因为一点小事提了分手,可求原谅太难了!一没有保存对方照片不知道如何是好?但是小编带你如何解决这些疑惑。
华为手机中最先推出的纯净模式对于很多用户来说如获至宝,但是对于很多用户来说都是鸡肋的功能,因为打开后会阻拦所有第三方的下载渠道,所以很多用户想要知道华为手机纯净模式怎么关闭?
通讯软件有很多,但我们常用的就是微信,微信中的游戏小程序是很多的,可是如果我们不玩的话,就可以选择关闭其入口,今天小编就告诉小伙伴们手机微信怎么关闭发现页中的游戏入口。
nginx + php 在linux 上部署记录,记录下部署php项目的时候的经过,查了很多资料,最后才定出的这个,中间些许问题可能已经记不清楚了。
需要公司的LOGO信息,但是没有,只有公司的名字,想着成个默认的,该怎么处理哪?看下边文章,可以学到经验啊!
手机是我们生活中必备的生活用品,几乎人人都有一部手机,如今手机越来越智能化,也下载了越来越多的智能软件及娱乐软件,比如微信的内存异常的大,如果内存比较的小的手机,垃圾软件及垃圾文件占了内存后,手机就会变得很卡,这里点点把清内存的方式分享给小伙伴们。