관련 학습 권장사항: WeChat 미니 프로그램 튜토리얼
taro를 사용하여 미니 프로그램 프로젝트를 개발하는 경우 taro-deploy를 사용하여 원클릭 자동 빌드 및 릴리스를 효율적으로 수행하는 것이 좋습니다.
Taro 미니 프로그램 개발자는 종종 다음과 같은 고충을 겪습니다. 코드를 개발하고 테스트용으로 게시한 후에는 다음과 같은 일련의 단계를 거쳐야 합니다(예: Alipay 및 WeChat 미니 프로그램 플랫폼 사용):
전체 과정은 거의 10분 정도 소요되며, 아직까지 수동 작업이 필요한 단계가 많이 있습니다. 이 독창적인 게시 방식은 매우 비효율적이라고 할 수 있습니다.
taro-deploy는 이러한 문제점을 해결하기 위해 등장했습니다. Alipay와 WeChat에서 제공하는 명령줄 도구를 통합하여 위 프로세스를 자동으로 완료합니다.
taro-deploy를 사용하면 개발자는 게시 및 테스트 시 두 단계만 수행하면 됩니다.
빌드 및 릴리스가 완료된 후 , DingTalk에서 수집됩니다. 빌드 결과를 푸시할 때 프로세스 전반에 걸쳐 수동 개입이 필요하지 않습니다.
다음은 딩톡 푸시 메시지 화면입니다.
푸시 메시지에는 릴리스로 생성된 미니 프로그램의 QR 코드 외에도 빌드 머신, 빌드 브랜치, 프로젝트의 최근 git 커밋 로그 등도 함께 제공되는 것을 볼 수 있습니다. 포장 정보를 더욱 명확하게 만듭니다.
참고: git 커밋 로그는 현재 feat
및 fix
키워드로 시작하는 커밋만 표시합니다feat
和 fix
关键词开头的 commit
如果你
那你就非常适合使用 taro-deploy 了。
npm i -g taro-deploy复制代码
参考官方文档创建钉钉机器人,安全设置记得选择“自定义关键词”并填上“小程序构建”即可。
创建完成后,会得到一个形如 https://oapi.dingtalk.com/robot/send?access_token=XXXXXX
// deploy-config.js// 该文件应放在 Taro 项目的根目录下module.exports = { // 构建结果的输出目录,该脚本产生的日志也会输出到这里 outDir: './deploy-out', // 微信相关配置 weapp: { // 如果为 false,则不会运行微信的构建流程 enable: true, // 这里填你们配置的 Taro 编译后微信程序包的输出路径 projectPath: './dist/weapp', // Step 2 里获得的私钥文件的存放路径 keyPath: './weapp.key', // 微信小程序 appId appId: 'wx82xxxxxx', // 微信体验版图片地址 // 与支付宝不同,不管上传多少个新版本,微信的体验版地址是一直不变的 // 因此需要在这里配置该二维码图片的链接 // 直接从微信公众平台上复制的体验版图片地址貌似无法在钉钉里正常展示 // 建议转存到自己的 CDN 上,再将 cdn url 填到下面这里来 qrcodeImageUrl: 'https://xxxcdn.con/image/weapp-exp-qrcode.jpg', // 小程序版本号 // 由于微信的命令行 sdk 不支持设置某个版本为体验版,要改设体验版需要在网页上手动操作 // 所以只能曲线救国,先在网页上将本工具上传的版本设为体验版(找到 ci机器人1 上传的那个版本) // 然后每次上传都指定同一个版本号,以覆盖旧的版本,最终实现发布新体验版的效果 version: '1.1.0', // true 则将跳过编译阶段,即 taro build 命令, skipBuild: false, }, // 支付宝相关配置 alipay: { // 如果为 false,则不会运行支付宝的构建流程 enable: true, // 这里填你们配置的 Taro 编译后支付宝程序包的输出路径 projectPath: './dist/alipay', // Step 2 里获得的私钥文件的存放路径 keyPath: './alipay.key', // Step 2 里获得的 toolId toolId: 'f48xxx', // 支付宝小程序 appId appId: '202xxx', // true 则将跳过 taro build 命令,即编译阶段 skipBuild: false, }, // 默认发体验版,填 false 则发布为预览版 // 注意如果发布为预览版,需要实现 uploadImage 的函数,否则钉钉无法展示预览版的二维码 isExperience: true, // 是否在构建前运行 npm install npmInstall: false, // 指定环境变量,会在编译阶段,即 taro build 的指令中注入指定的环境变量 env: { BUILD_ENV: 'test' // 仅作 demo,实际应填入你项目编译需要用的环境变量 }, // Step 3 中获取的钉钉机器人 webhook url dingTalkUrl: 'https://oapi.dingtalk.com/robot/send?access_token=xxx', // 如果你只需要构建发布体验版小程序,则可忽略以下函数 // 如果你需要构建发布预览版小程序,则需要实现该函数,将本地二维码图片文件转换为图片链接,否则无法将预览版二维码推送到钉钉群里 // 其中 objectName 形如 {platform}-{timestamp}.jpg,作为建议保存的文件名 // filePath 为本地预览版二维码图片的路径 uploadImage: async function(objectName, filePath) { return '' // 如果你使用阿里云 oss 作 cdn,可以参考以下代码进行上传 // const OSS = require('ali-oss') // const client = new OSS({ // region: 'oss-cn-xxx', // accessKeyId: 'xxx', // accessKeySecret: 'xxx', // bucket: 'xxx', // }) // await client.put(`preview/${objectName}`, filePath, { // 'Cache-Control': 'max-age=31536000' // }) // return `https://xxx-oss-cdn.com/preview/${objectName}` } }复制代码
Alipay: 공식 문서를 참조하고 개인 키와 도구 ID를 준비하세요.
생성이 완료되면 나중에 사용할 https://oapi.dingtalk.com/robot/send?access_token=XXXXXX
형태의 웹훅 URL을 얻게 됩니다.
Taro 프로젝트의 루트 디렉터리에 배포-config.js 파일을 만들고 다음 템플릿에 따라 내용을 입력합니다.
# cd 到你们的项目并运行taro-deploy复制代码
5단계 - taro-deploy 실행
rrreee🎜그런 다음 DingTalk 로봇이 빌드 결과🎜🎜FAQ🎜🎜Q: 우리는 DingTalk Office를 사용하지 않습니다. taro-deploy를 어떻게 사용할 수 있나요? 🎜🎜A: taro-deploy는 현재 DingTalk 메시지 푸시만 지원합니다. 그렇지 않으면 평가판 버전의 자동화된 구축, 업로드 및 설정만 완료할 수 있지만 최종 푸시 단계는 완료할 수 없습니다. 다른 IM 도구를 푸시해야 하는 경우 직접 구현해 볼 수 있으며 PR을 제출해도 좋습니다. 🎜🎜Q: 프리뷰 버전을 출시할 때 uploadImage 기능을 구현하는 것이 왜 이렇게 번거롭나요? 🎜🎜A: Alipay 및 WeChat의 미리보기 버전은 로컬 QR 코드 이미지만 생성하므로 DingTalk 메시지에 로컬 QR 코드 이미지를 표시하려면 먼저 이미지를 CDN에 업로드한 다음 CDN 링크를 입력하면 됩니다. . DingTalk 메시지 템플릿을 입력하세요. 🎜🎜Q: WeChat 평가판이 출시된 후에도 여전히 오래된 이유는 무엇인가요? 🎜🎜A: WeChat 웹 콘솔로 이동하여 "ci Robot 1"이 업로드한 버전이 평가판 버전으로 설정되어 있는지 확인하세요. 🎜🎜Q: WeChat과 Alipay만 지원하나요? 🎜🎜A: Taro는 다양한 플랫폼을 지원하지만 taro-deploy는 현재 WeChat 및 Alipay의 자동 구성 및 출시만 지원합니다. 🎜🎜Q: ci로봇1이 업로드한 버전을 찾을 수 없나요? 🎜🎜A: 먼저 taro-deploy를 실행하세요. 업로드가 완료된 후 WeChat 애플릿 콘솔 웹페이지의 "버전 관리" 메뉴에서 찾을 수 있습니다. 🎜🎜Q: 이 도구에 버그가 있으면 미니 프로그램의 온라인 오작동이 발생합니까? 🎜🎜A: taro-deploy는 현재 미리보기 및 평가판 릴리스만 지원하며 프로덕션 버전 릴리스는 지원하지 않으며 프로덕션 환경에 영향을 미치지 않습니다. 🎜A: 현재 유연한 DingTalk 메시지 템플릿 구성이 없습니다. 필요한 경우 이 프로젝트를 포크하고 send-ding.js 파일을 사용자 정의할 수도 있습니다. PR을 제출하세요.
위 내용은 taro-deploy를 사용하여 taro 애플릿을 자동으로 빌드하고 릴리스하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!