Verwandte Lernempfehlungen: WeChat-Miniprogramm-Tutorial
Wenn Sie Taro zum Entwickeln von Miniprogrammprojekten verwenden, wird empfohlen, Taro-Deploy zu verwenden, um die automatisierte Erstellung und Freigabe mit einem Klick effizient durchzuführen.
Entwickler von Taro-Miniprogrammen haben oft diesen Schmerzpunkt: Nachdem Sie den Code entwickelt und zum Testen veröffentlicht haben, müssen Sie die folgenden Schritte ausführen (nehmen Sie die Miniprogrammplattformen Alipay und WeChat als Beispiele):
Der gesamte Vorgang dauert fast zehn Minuten und es gibt immer noch viele Schritte, die manuelle Vorgänge erfordern. Man kann sagen, dass diese ursprüngliche Veröffentlichungsmethode sehr ineffizient ist.
taro-deploy wurde entwickelt, um dieses Problem zu lösen. Es integriert die von Alipay und WeChat bereitgestellten Befehlszeilentools, um den oben genannten Prozess automatisch abzuschließen.
Mit taro-deploy benötigen Entwickler beim Veröffentlichen und Testen nur zwei Schritte:
Nachdem der Build und die Veröffentlichung abgeschlossen sind , es wird auf DingTalk gesammelt. Wenn es darum geht, die Build-Ergebnisse zu pushen, ist während des gesamten Prozesses kein manueller Eingriff erforderlich.
Das Folgende ist ein Screenshot der Push-Nachricht auf DingTalk.
Sie können sehen, dass die Push-Nachricht zusätzlich zum QR-Code des durch die Veröffentlichung generierten Miniprogramms auch die Build-Maschine, den Build-Zweig, das aktuelle Git-Commit-Protokoll des Projekts usw. enthält. um die Verpackungsinformationen klarer zu gestalten.
HINWEIS: Das Git-Commit-Protokoll zeigt derzeit nur Commits an, die mit den Schlüsselwörtern feat
und fix
beginnen.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: siehe offizielle Dokumentation und Seien Sie bereit, privater Schlüssel und Tool-ID.
Nachdem die Erstellung abgeschlossen ist, erhalten Sie eine Webhook-URL in der Form https://oapi.dingtalk.com/robot/send?access_token=XXXXXX
, die später verwendet wird.
Erstellen Sie eine Datei „deploy-config.js“ im Stammverzeichnis Ihres Taro-Projekts und füllen Sie den Inhalt gemäß der folgenden Vorlage aus.
# cd 到你们的项目并运行taro-deploy复制代码
Schritt 5 – taro-deploy ausführen
rrreee🎜Dann können Sie warten, bis der DingTalk-Roboter den Push durchführt Build-Ergebnisse🎜🎜FAQ🎜🎜F: Wir verwenden DingTalk Office nicht. Wie können wir Taro-Deploy verwenden? 🎜🎜A: taro-deploy unterstützt derzeit nur das Pushen von DingTalk-Nachrichten. Andernfalls kann die Testversion nur automatisiert erstellt, hochgeladen und eingerichtet werden, der letzte Push-Schritt kann jedoch nicht abgeschlossen werden. Wenn Sie den Bedarf haben, andere IM-Tools voranzutreiben, können Sie versuchen, dies selbst zu implementieren, und Sie können auch gerne PR einreichen. 🎜🎜F: Warum ist es so mühsam, die Funktion „uploadImage“ zu implementieren, wenn eine Vorschauversion veröffentlicht wird? 🎜🎜A: Da die Vorschauversionen von Alipay und WeChat nur lokale QR-Code-Bilder generieren, können Sie, wenn Sie lokale QR-Code-Bilder in DingTalk-Nachrichten anzeigen möchten, das Bild nur zuerst in CDN hochladen und dann den CDN-Link ausfüllen . Geben Sie die DingTalk-Nachrichtenvorlage ein. 🎜🎜F: Warum ist die WeChat-Testversion nach ihrer Veröffentlichung noch alt? 🎜🎜A: Bitte gehen Sie zur WeChat-Webkonsole, um sicherzustellen, dass die von „ci Robot 1“ hochgeladene Version als Testversion festgelegt wurde. 🎜🎜F: Unterstützt es nur WeChat und Alipay? 🎜🎜A: Taro unterstützt viele Plattformen, aber taro-deploy unterstützt derzeit nur die automatische Erstellung und Veröffentlichung von WeChat und Alipay. 🎜🎜F: Die von ci robot 1 hochgeladene Version wurde nicht gefunden? 🎜🎜A: Führen Sie zuerst taro-deploy aus. Nachdem der Upload abgeschlossen ist, finden Sie ihn im Menü „Versionskontrolle“ auf der WeChat-Applet-Konsolen-Webseite. 🎜🎜F: Wenn in diesem Tool ein Fehler auftritt, führt dieser dann zu einer Online-Fehlfunktion des Miniprogramms? 🎜🎜A: taro-deploy unterstützt derzeit nur die Veröffentlichung von Vorschau- und Testversionen. Die Veröffentlichung von Produktionsversionen wird nicht unterstützt und hat keine Auswirkungen auf die Produktionsumgebung. 🎜A: Derzeit gibt es keine flexible DingTalk-Nachrichtenvorlagenkonfiguration. Bei Bedarf können Sie dieses Projekt teilen und die send-ding.js-Datei anpassen PRs einreichen.
Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung der Verwendung von taro-deploy zum automatischen Erstellen und Freigeben eines Taro-Applets. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!