RT
微信小程序的Function构造函数会返回固定的对象,目的是防止动态执行代码。在使用webpack打包的应用程序中,webpack/buildin/global.js模块的代码如下:
var g; g = function () { return this }(); try { g = g || Function( "return this" )() || (1, eval)( "this" ) } catch (e) { if ( typeof window === "object" ) g = window } module.exports = g |
经过微信开发者工具压缩后,闭包中的this为undefined,于是会判断Function("return this")这步,然而因为上文提到的Function构造函数的问题,不会报错,返回的也不是undefined或null,于是global.js会误将这个返回对象当做window使用。此时如果使用了npm中的reflect-metadata包就会报错,因为reflect-metadata会优先使用global.js提供的对象。请尽快修复Function的问题,比如如果不希望使用Function构造函数,则抛出异常,或者什么也不返回
基础库版本是?这里已经做过了兼容的
没有用小程序生成工程,使用EgretWing 5.2.7打包出来的项目