自制js编译压缩小工具

自制js编译压缩小工具

点点

2021-03-25 09:13 阅读 416 喜欢 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


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

赞赏支持
提交评论
评论信息(请文明评论)
暂无评论,快来快来写想法...
推荐
iPhone12如何关机?当我们在购买了iPhone12系列手机之后,想要将手机关机,发现用长按关机键无法关机,这是为什么呢,为什么iPhone12长按关机键无法关机,iPhone12如何关机,下面就和点点一起来看看吧!
生活中,小伙伴们肯定也遇到了这样的问题。点点给小伙伴们解惑来了。好多天没开电脑啦!正好用到电脑,刚打开就傻眼啦。结果开机进不了系统,蓝屏显示自动修复失败,立马选了启动修复,但可想而知不起作用。主要是不想花钱,嘻嘻。经过几天的折腾,终于,柳暗花明,进入系统。下面给点点分享这几天所查到并使用的方法,以及最后是用什么方法解决的。
U盘使用过程中,莫名其妙的问题还是有很多的,其中最奇怪的就是出现U盘拒绝访问的问题,然后就无法打开U盘了,里面的资料也拷贝不出来,不用花钱,一招搞定。一招让u盘重获新生,千万不要拿去换新。u盘无法访问如何解决?
爬虫与反爬一直在不停的斗争,手段层次不穷。字体反爬算是常见的一种手段,大抵的思路是通过字体文件将浏览器渲染结合起来,让浏览器看到的内容与肉眼看到的内容不一致,达成一定的反爬目的。
在当下的时代办公软件有好多,但现在钉钉是我们常用的办公软件之一,有小伙伴问怎么修改钉钉文件的默认保存位置,下面小编介绍一下。
微信是我们常用的软件,平常生活和工作中都会在聊天中发送图片,可是有时候过几天可能就过期啦,我们无法查看啦。这时候我们还可以把过期的图片恢复过来。其实,也不叫恢复,本身就存在我们自己的手机中,只是加密啦,我们看不到而已,一会点点教小伙伴们先是怎样查看已过期或已清理图片的查看方法,再教小伙伴们永久清除微信内无用图片的方法。可以让手机瞬间腾出几个G的空间。
做爬虫或其他的一些应用的时候,如果需要一些短信验证,又没有那么多手机号,又不能放人在那里一直输入的时候?怎么办?
现在的社交软件有很多,但是实用面积广的就哪几个,里边QQ是最早的功能也是比较全的,QQ是现在十分常用的游戏社交软件之一,有些小伙伴不知道怎么找到手机中的QQ文件,接下来小编就给小伙伴们介绍一下具体的操作步骤。