场景:
- 按产品需要,应用需要打多种马甲包(换个图标名字)及渠道包(同种包有不同的渠道),多达上百个,包名还需要根据渠道、版本、名称经过加密来命名。
- 打包过程:需要更换图片、渠道id、名字、版本号,然后运行打包命令,等待三四分钟编译打完包,然后更改加密后的包名
想象一下,几百个包,守在那里,一个一个打...
批量打包原理:
这里先是将需要打包的资源图片用统一的命名规范放在一个文件夹里面,然后用nodejs读取该文件就可以知道要打哪些马甲包,然后在遍历打包过程中用nodejs读取替换图片,计算加密包名,读取并更改配置文件,最后运行打包命令。说的可能不明不白,下面贴上代码:
创建channelMRD.js文件,代码如下:
- 引入fs模块,并读取目录确定所要打的包。所有要打包的图片资源都放在了文件夹resourcesImage里面。并过滤掉垃圾文件,防止后面遍历过程报错
- 对images进行遍历操作
- 在遍历过程中替换图片,使用fs模块将resourcesImage下的图片资源替换到对应项目图片所在位置。
- 设置配置文件。首先需要知道要设置成多少:resourcesImage图片命名按要求拼接好后,这里直接读取就可以了
- 拿到配置,接下来设置配置文件即可,这里将设置配置文件的代码放到了新建的channelProcess.js文件里了,通过child_process模块运行该脚本即可
- 进入channelProcess.js,首先是获取传进来的配置信息:
- 先是修改package.json配置,内容较多,可能有点麻烦
读取package.json并修改配置信息:名字、版本号、包名、id等
changeData:修改名称、版本、id等配置
artifactName是经过md5加密的最终名称
writeFile:写入文件包一层
- 修改其他配置同理,甚至更简单,直接覆盖写入即可
- 至此,配置文件更改完毕。回到channelMRD.js文件下的遍历操作那里,改完配置后就是开始打包了。这里需要注意的是直接运行execSync('yarn edist')打包后会有文件丢失,我当时为了查看控制台输出,加入配置{stdio: 'inherit'}后就正常了
- 还有同一种马甲包下有不同渠道包,这里渠道比较简单,就1、2、3,遍历123执行步骤5跟步骤9即可
- 批量打包命令:在package.json的script下加入
运行 yarn dist:all 坐等打包即可
总结:虽然过程看起来繁琐,其实就是用nodejs的fs模块读写文件,以及child_process模块execSync运行命令而已
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!