- miniprogram-ci 这个小程序官方包 在引入第三方库时,调用上传命令会报错
官方文档: https://developers.weixin.qq.com/miniprogram/dev/devtools/ci.html 由于这个npm包代码未开源(代码压缩混淆了),没有相应的github 提bug区域,故此将bug提在这里 重现环境: miniprogram-ci 版本: 1.0.11、1.0.12 window10 企业版 64位系统 nodejs v10.16.3 npm 6.11.3 注意:mac os系统上没有此问题 最小可重现代码: https://github.com/bigmeow/miniprogram-ci-bug 重现步骤 1. 用小程序开发者工具新建立一个项目, npm init 2. 安装 `npm i @vant/weapp -S --production` 和 `npm i miniprogram-ci -D` 3. 编写 build.js, 修改其中的appid和私钥,后台关闭白名单 4. 运行命令 `node build.js` 问题 如果不引入第三方库,构建npm和上传都成功; 引入了第三方库,构建npm成功,上传失败报错;但是直接点击小程序开发者工具的上传则无问题 [图片] 报错代码: "miniprogram-ci": "1.0.11" 版本错误信息: (node:21612) UnhandledPromiseRejectionWarning: Error: ["usingComponents"]["van-icon"]: "../icon/ind ex" not found at Object.throwError (C:\project\github\bug\node_modules\miniprogram-ci\dist\utils\common.js:1: 274) at _checkComponentPath (C:\project\github\bug\node_modules\miniprogram-ci\dist\json\common.js:1 :2012) at Object.exports.checkComponentPath.t [as checkComponentPath] (C:\project\github\bug\node_modu les\miniprogram-ci\dist\json\common.js:1:2427) at checkComponentPath (C:\project\github\bug\node_modules\miniprogram-ci\dist\json\page\page.js :1:1537) at compilePageJSON (C:\project\github\bug\node_modules\miniprogram-ci\dist\json\page\page.js:1: 2249) (node:21612) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated e ither by throwing inside of an async function without a catch block, or by rejecting a promise whic h was not handled with .catch(). (rejection id: 1) (node:21612) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the futu re, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code. "miniprogram-ci": "1.0.12" 、 "miniprogram-ci": "1.0.13"、 "miniprogram-ci": "1.0.14" 版本错误信息: (node:23640) UnhandledPromiseRejectionWarning: Error: ["usingComponents"]["van-icon"]: "../icon/index" not found at Object.throwError (C:\project\github\bug\node_modules\miniprogram-ci\dist\utils\common.js:1:274) at _checkComponentPath (C:\project\github\bug\node_modules\miniprogram-ci\dist\json\common.js:1:2120) at Object.exports.checkComponentPath.t [as checkComponentPath] (C:\project\github\bug\node_modules\miniprogram-ci\dist\json\common.js:1:2535) at checkComponentPath (C:\project\github\bug\node_modules\miniprogram-ci\dist\json\page\page.js:1:1537) at compilePageJSON (C:\project\github\bug\node_modules\miniprogram-ci\dist\json\page\page.js:1:2249) (node:23640) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1) (node:23640) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code. 2020年03月31日0.05分更新: "miniprogram-ci": "1.0.18" 版本已经解决上述问题,又发现一个新的问题,在上传时打印的日志: [图片] 找到出解析出问题的那段: [图片] 是 第三库里的wxml文件里直接写wxs 才会出现?
2020-03-31 - miniprogram-ci上传小程序经常失败20003 statusCode: 50,什么原因呢?
通过miniprogram-ci 调用preview upload时,经常上传失败。周五失败频率更高。 上传请求如下: request url: https://servicewechat.com/wxa/ci/testSourceURL?codeprotect=0&type=miniProgram&appid=wxffb7d80f8c50ac5c&version=0.0.1&desc=%E5%BC%80%E5%8F%91%E7%89%88-%E5%BC%80%E5%8F%91%E7%89%88&robot=2&path=pages%2Fhome%2Fhome%3Fa%3D1&debugLaunchInfo=%7B%22scene%22%3A1011%2C%22path%22%3A%22pages%2Fhome%2Fhome%22%2C%22query%22%3A%7B%22a%22%3A%221%22%7D%7D 错误日志如下: Error: {"errCode":-1,"errMsg":"inner test source fail statusCode: 503"} at innerUpload (/usr/lib/node_modules/@jd/minici/node_modules/miniprogram-ci/dist/ci/upload.js:1:3517) at processTicksAndRejections (internal/process/task_queues.js:93:5) at async preview (/usr/lib/node_modules/@jd/minici/node_modules/miniprogram-ci/dist/ci/preview.js:1:977) at async Object.preview (/usr/lib/node_modules/@jd/minici/node_modules/miniprogram-ci/dist/utils/report.js:1:1403)
2022-01-07 - 小程序基础库 2.17.3 及以后版本出现了引用第三方包后引发runtime相关报错,是否为bug?
小程序基础库 2.17.3 及以后版本出现了引用部分第三方包后引发了 ReferenceError: regeneratorRuntime is not defined 的报错。 但是在 2.17.3 之前的版本不会出现这个问题。 目前还发现,如果在同一个文件中加入任意的async语句,也会解决这个报错问题,所以很奇怪。 开发环境如下: 小程序基础库版本:2.17.3 小程序开发者工具版本:1.05.2106300 代码片段如下: // app.js import MPServerless from '@alicloud/mpserverless-sdk'; // 引用就会报错 App({ onLaunch() { // 展示本地存储能力 const logs = wx.getStorageSync('logs') || [] logs.unshift(Date.now()) wx.setStorageSync('logs', logs) // 登录 wx.login({ success: res => { // 发送 res.code 到后台换取 openId, sessionKey, unionId } }) }, globalData: { userInfo: null }, // async menubar(){} 在该文件加入任意async语句,就不会报错。所以很奇怪。 }) 项目配置文件如下: { "description": "项目配置文件", "packOptions": { "ignore": [] }, "setting": { "urlCheck": false, "es6": true, "enhance": true, "postcss": true, "preloadBackgroundData": false, "minified": true, "newFeature": false, "coverView": true, "nodeModules": false, "autoAudits": false, "showShadowRootInWxmlPanel": true, "scopeDataCheck": false, "uglifyFileName": false, "checkInvalidKey": true, "checkSiteMap": true, "uploadWithSourceMap": true, "compileHotReLoad": false, "lazyloadPlaceholderEnable": false, "useMultiFrameRuntime": true, "useApiHook": true, "useApiHostProcess": true, "babelSetting": { "ignore": [], "disablePlugins": [], "outputPath": "" }, "enableEngineNative": false, "useIsolateContext": true, "userConfirmedBundleSwitch": false, "packNpmManually": false, "packNpmRelationList": [], "minifyWXSS": true, "showES6CompileOption": false }, "compileType": "miniprogram", "libVersion": "2.18.0", "appid": "wx11a63104dee2c255", "projectname": "miniprogram-2", "debugOptions": { "hidedInDevtools": [] }, "scripts": {}, "staticServerOptions": { "baseURL": "", "servePath": "" }, "isGameTourist": false, "condition": { "search": { "list": [] }, "conversation": { "list": [] }, "game": { "list": [] }, "plugin": { "list": [] }, "gamePlugin": { "list": [] }, "miniprogram": { "list": [] } } }
2021-07-08 - 关于项目配置文件忽略文件的问题
[图片] 我想忽略后缀为.md和.gitignore,但好像失效,是路径写错么?
2018-07-03 - 小程序内部是否使用的是 CommonJS 模块规范?
想确认一下小程序内部是否使用的是 CommonJS 模块规范,从表现上看是。因为这涉及到循环依赖的处理。 现在我们代码中使用的 ES Modules,会被微信小程序转换成 CommonJS,这让循环依赖很难处理。CommonJS 中循环依赖一般需要使用动态 require 才能处理,我们就需要 import 与 require 混着用,很恼火。要么就需要全部使用 require 或者避免循环依赖,这些选项都不太理想。 ES Modules 的动态绑定让循环依赖更容易处理,所以微信小程序能不能提供一个选项,让开发者控制 runtime 阶段的模块规范(类似于 ES6 转 ES5 开关),比如在 runtime 阶段使用 ES Modules。
2018-07-23 - 自定义组件创建顺序和 "lazyCodeLoading"引发的问题?
错误示例 https://developers.weixin.qq.com/s/vOdyHymR7atQ 1.上述示例 在工具中编译或者真机调试会报错 Component is not found in path "components/comp2/comp2" (using by "components/comp1/comp1") 但是预览正常 2.原示例 去除app.json中的配置"lazyCodeLoading" : "requiredComponents",工具和真机调试报错依旧, 预览白屏。 3.原示例 删除comp1文件夹,再在回收站中还原此文件夹后,工具编译正常,预览正常,真机调试控制台正常,屏幕一直中间转圆圈 说下自己的理解。 配置的lazyCodeLoading在工具编译(我是windows环境)时无效,只在真机使用小程序时有效. 工具编译的时,因为某些因素,组件有预注入行为(形容),并与组件创建时间相关,如果子组件创建在父组件后,会造成报错,找不到子组件。但由于设置了lazyCodeLoading,在真机启动小程序时(预览),组件注入行为有变,所以正常显示。(把父组件删除再还原的操作会使得子组件创建时间早于父组件,工具就不报错了) 需求产生是因为,开发的第三方插件(JS,TS开发)想利用自定义组件的返回值为载体承载组件类型,在父组件中写子组件properties时有更严格的类型检查,搭配behaviors可以实现更细粒度开发模式。插件已经开发完毕(实现ts类型的严格检查很费事),但由于现有错误,不得不下架npm。希望管理开发人员看到,给个官方思路,如果没有想法改变,看来就得放弃维护此插件了(心疼)。其实就是让lazyCodeLoading模式在工具端编译时生效。以下为一些插件相关截图。 [图片] [图片] [图片][图片] [图片]
2021-09-24 - 开启lazyCodeLoading懒加载导致pc端出错
开启懒加载之后, 开发工具/安卓/ios都没有问题, pc(windows/mac)都在启动小程序的时候出错了 app-service.js: pages/xxx.js is not defined [图片]
2021-11-26 - lazyCodeLoading 为什么设置了没有效果?
基础库设置成了2.19.1 在app.json中设置了 "lazyCodeLoading": "requiredComponents" 但是 在开发者空工具中查看 冷启动 还是主包全部的页面和组件 都会加载 这是为什么 理论上不是应该只是首页的页面和组件进行加载吗
2021-08-16 - lazyCodeLoading 导致sourcemap下载不了
app.json中加入了lazyCodeLoading,下载sourcemap会报错。
2021-08-17 - 怎么查自己微信公众号的URL?
怎么查自己微信公众号的URL?
2020-09-25