我引入腾讯视频插件,出现了这种问题,降低了qs的版本,qs@6.5.3正常
小程序所有页面真机调报ength` must be a positive 32-bit integ?小程序所有页面真机调报ength` must be a positive 32-bit integ?导致页面全部空白
05-14我引入腾讯视频插件,出现这种问题,降低了qs的版本,qs@6.5.3正常
开发都工具正常,真机、预览、体验版都是空白?[图片]如图,在开发都工具中一切正常,切换到预览、真机、体验版都是一片空白。在高度中显示图上错误。几乎所有页面都报`length` must be a positive 32-bit integer
05-14我引入腾讯视频插件,出现这种问题,降低了qs的版本,qs@6.5.3正常
开发工具正常,真机预览空白,开启调试显示报错?error during evaluating file "app.js" length must be a positive 32-bit interger [图片]
05-14我引入腾讯视频插件,出现这种问题,降低了qs的版本,qs@6.5.3正常
真机报错:Error during evaluating file "app.js",是什么原因?我小程序代码1个月都没用动过了。但是今天运行之后,模拟器没问题。iOS和Android都报错。错误如下: [图片] 后续补充,以下是我的解决办法: # 问题记录 ## 问题记录-01 - 问题:真机运行,出现: ```log `length` must be a positive 32-bit integer Error during evaluating file "app.js": ``` 无论是更改小程序基础库,还是 - 探索 出问题的地方是,通过HbuilderX,编译后形成的common/vendor.js以下代码: ```js module.exports = function setFunctionLength(fn, length) { if (typeof fn !== 'function') { throw new $TypeError('`fn` is not a function'); } if (typeof length !== 'number' || length < 0 || length > 0xFFFFFFFF || $floor(length) !== length) { // throw new $TypeError('`length` must be a positive 32-bit integer'); return fn //此处更改 } /***以下代码省略***/ return fn; }; ``` 在报错的地方打日志,发现是解析一个叫:apply的方法有错代码如下: ```js // var $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply); var $reflectApply=Reflect.apply //此处更改 var $defineProperty = __webpack_require__(/*! es-define-property */ 51); var $max = GetIntrinsic('%Math.max%'); module.exports = function callBind(originalFunction) { if (typeof originalFunction !== 'function') { throw new $TypeError('a function is required'); } var func = $reflectApply(bind, $call, arguments); return setFunctionLength( func, 1 + $max(0, originalFunction.length - (arguments.length - 1)), true ); }; ``` 在小程序中,似乎"$max方法不生效" - 最终解决办法 使用原始的yarn.lock,删除掉node_modules,再次执行yarn。 详细调查是引用的call-bind这个库更新导致set-function-length判断异常。
05-14