uni-app cli 项目dev调试app时 每次运行命令都会删除debug文件夹 导致每次都要提交云打包基座
uni-app cli 项目dev调试app时 每次运行命令都会删除debug文件夹 导致每次都要提交云打包基座
项目信息 | 详情 |
---|---|
产品分类 | uniapp/App |
PC开发环境 | Mac |
PC开发环境版本 | 14.6.1 |
手机系统 | iOS |
手机系统版本 | iOS 17 |
手机厂商 | 苹果 |
手机机型 | iPhone 13 |
页面类型 | vue |
vue版本 | vue3 |
打包方式 | 云端 |
项目创建方式 | CLI |
CLI版本号 | 4.24 |
操作步骤:
- 多次运行dev
预期结果:
- 不需要每次都提交云打包基座,保留unpackage/debug/*
实际结果:
- unpackage/debug/* 被删除
bug描述:
uniapp cli 项目dev 调试app时候,每次运行命令都会删除debug文件夹,导致每次都要提交云打包基座
在处理uni-app CLI项目调试过程中,如果每次运行命令都会删除debug文件夹,这确实会带来一些不便,尤其是当你需要频繁地重新打包基座时。尽管通常我们不推荐直接修改框架或工具链的行为,但你可以通过一些工作区设置或脚本处理来避免手动提交云打包基座。
以下是一个可能的解决方案,利用npm脚本和文件备份机制来自动处理debug文件夹的备份与恢复。请注意,这种方法并不直接修改uni-app的内部行为,而是通过脚本辅助你的工作流程。
步骤 1: 修改package.json
添加脚本
在你的package.json
文件中,可以添加两个自定义脚本,一个用于备份debug文件夹(在删除前),另一个用于恢复它(在需要时)。
"scripts": {
"backup-debug": "if [ -d './debug' ]; then cp -r ./debug ./debug_backup; fi",
"restore-debug": "if [ -d './debug_backup' ]; then mv ./debug_backup ./debug; fi",
"dev-with-backup": "npm run backup-debug && uni-app-cli serve && npm run restore-debug"
}
步骤 2: 使用新脚本进行开发
现在,你可以使用npm run dev-with-backup
命令来启动你的开发服务器。这个命令会首先执行备份操作,然后启动uni-app的开发服务器,开发结束后尝试恢复debug文件夹。
注意事项
-
冲突处理:如果debug文件夹在恢复时与当前工作区有冲突(比如新的debug文件已经生成),你可能需要手动处理这些冲突。
-
自动化限制:这种方法依赖于npm脚本,虽然简单有效,但在高度自动化的CI/CD环境中可能需要更复杂的解决方案。
-
环境依赖性:上述脚本是基于Unix/Linux shell命令的,如果你在Windows环境下工作,可能需要转换为对应的批处理脚本。
示例(Windows批处理脚本)
对于Windows用户,可以将上述脚本转换为批处理命令:
"scripts": {
"backup-debug-win": "if exist debug (xcopy /E /I debug debug_backup)",
"restore-debug-win": "if exist debug_backup (move /Y debug_backup debug)",
"dev-with-backup-win": "npm run backup-debug-win && uni-app-cli serve && npm run restore-debug-win"
}
通过这种方式,你可以在一定程度上自动化处理debug文件夹的备份与恢复,减少手动操作的频率。