没有合适的资源?快使用搜索试试~ 我知道了~
首页前端发布流程bat脚本优化:模块拆分与多工具应用
前端发布流程bat脚本优化:模块拆分与多工具应用
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 77 浏览量
更新于2024-08-06
收藏 804KB DOC 举报
本文档深入探讨了基于BAT脚本的前端发布流程优化的实践,作者在前文中已介绍了基础的脚本设计和实现,本篇则聚焦于进一步的优化策略。首先,通过"各个击破"的方法,将构建、打包和上传过程分解为更小、更易于管理的任务,提高了代码的可维护性和健壮性。作者引入了`archiver`库来实现文件打包,替代了先前的VBS脚本,利用Node.js的npm包进行文件压缩,这既满足了他的技术兴趣,也是对不同技术栈的尝试。 接着,"条条大路通杭州"部分指代作者修改了zip压缩逻辑,使用了更为高效且灵活的`npmpkg-archiver`工具。"打扫干净屋子再请客"这部分强调了在打包前清理旧文件的重要性,确保每次发布都是从干净的环境开始。"鸡蛋放一个篮子里"意味着将生成的文件统一放置在根目录,使得文件结构更加清晰直观。 为了提高效率,作者引入了"火影分身术"的概念,即利用多进程打包,允许同时处理多个子项目,显著提升了构建速度。最后的"一网打尽"表达了将上传逻辑独立出来,并将其置于整个流程的末尾,使得整个发布流程更加有序。 作者通过实例详细展示了如何逐步实施这些优化策略,包括使用`archiver`库创建自定义打包规则,以及如何处理日期格式等问题。这种细致入微的优化不仅提升了工作效率,还体现了作者在技术探索和实践中不断迭代和改进的精神。在整个过程中,作者分享了自己的思考和决策过程,对于其他开发者来说,这是一个宝贵的实战经验和学习案例。
资源详情
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/86092071/bg1.jpg)
基于 bat 脚本的前端发布流程的优化
背景介绍
前面在基于 bat 脚本的前端发布流程设计与实现中,我已经介绍了设计与实现,这一篇主
要是针对其的一个优化折腾(分两步走,第一步先搞出来,第二步再想着怎么去优化它),
我主要做了以下几件事。
“各个击破” ------ 更细粒度地拆分构建、打包、上传模块,逻辑更清晰,维护更简便,程
序更鲁棒
“条条大路通杭州” ------ 更改了压缩 zip 的实现逻辑(npm pkg - archiver)
“打扫干净屋子再请客” ----- 追加了清理之前的文件的逻辑
“鸡蛋放一个篮子里” ------ 把生成的文件移到根目录,更加直观了
“火影分身术” ------ 支持多进程打包,可以并行搞多个子项目
“一网打尽” ------ 抽离了上传的逻辑放最后一把梭哈
下面我以一个项目为例,着重向大家介绍我是怎么一步步折腾的。
archiver 包实现文件打包
这里你问我为什么之前已经实现了 bat 脚本结合 vbs 脚本的文件压缩,还要再搞一套?我
也很难回答你为什么,就是玩哇,学编程搞技术爱折腾呗,我是个 jser,同时也是个 tser,
想到用 npm 构建也合情合理。
我这里主要是用到了一个库叫 archiver,它的官网是 https://www.archiverjs.com/,代码的
一些细节我已经写了注释了,这里就不过多介绍,我大致的思路是,在文件构建完以后,定
义下要打包的目录,然后按照${项目名}-dist-${时间}.zip 的格式打包,这里需要注意的是,
当月份小于 10 的时候它下面代码输出的是 M 而不是 MM,这个本身是做一个标识,要抹平
这部分差异无非也就是多写几句话,我在这件事情上没有强迫症,所有我就没抹平。
const fs = require(‘fs’)
const path = require(‘path’)
const archiver = require(‘archiver’)
// 项目的文件目录
const baseDir = path.join(__dirname, ‘../’)
// 格式化当前时间,这里需要注意如果月份小于 10 的话是 M 而不是 MM 输出,仅做个
发版标记,那就没必要强迫症对齐 YYYY-MM-DD hh:mm:ss
const [foo, bar] = new Date().toLocaleString().split(‘ ‘)
const time = `${foo.replaceAll(‘/’, ‘‘)}${bar.replaceAll(‘:’, ‘‘)}`
// 这里用数组,是因为如果你还想打包其他的文件目录或者文件,就放到这个数组里
const target = [‘dist’]
下载后可阅读完整内容,剩余5页未读,立即下载
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pt](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
书博教育
- 粉丝: 1
- 资源: 2834
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- 解决Eclipse配置与导入Java工程常见问题
- 真空发生器:工作原理与抽吸性能分析
- 爱立信RBS6201开站流程详解
- 电脑开机声音解析:故障诊断指南
- JAVA实现贪吃蛇游戏
- 模糊神经网络实现与自学习能力探索
- PID型模糊神经网络控制器设计与学习算法
- 模糊神经网络在自适应PID控制器中的应用
- C++实现的学生成绩管理系统设计
- 802.1D STP 实现与优化:二层交换机中的生成树协议
- 解决Windows无法完成SD卡格式化的九种方法
- 软件测试方法:Beta与Alpha测试详解
- 软件测试周期详解:从需求分析到维护测试
- CMMI模型详解:软件企业能力提升的关键
- 移动Web开发框架选择:jQueryMobile、jQTouch、SenchaTouch对比
- Java程序设计试题与复习指南
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)