由于项目需求引入pomelo,包含在pomelo-client.js,protobuf.js,protocol.js 在1.4.0中没有问题,升级1.4.2后,在没有删除自动生成的library,local,temp时也是没问题的,然而,删除重新打开项目后就会报TypeError错误,具体信息如下
TypeError: Cannot set property ‘protobuf’ of undefined
at Object.require.protobuf: “})(typeof(window) == “undefined” ? module.exports : (this.protobuf = {}), this)” (assets/pomelo/protobuf.js:37:1)
at s (file:///E:/work/CslEleven/test/library/bundle.project.js?001:1:262)
at file:///E:/work/CslEleven/test/library/bundle.project.js?001:1:313
at Object.require.pomelo-client.events (assets/pomelo/pomelo-client.js:1)
at s (file:///E:/work/CslEleven/test/library/bundle.project.js?001:1:262)
at e (file:///E:/work/CslEleven/test/library/bundle.project.js?001:1:433)
at file:///E:/work/CslEleven/test/library/bundle.project.js?001:1:451
对比1.4.0与1.4.2两个版本的temp和library,发现在1.4.2中 pomelo的js文件中“this” 被替换成了“undefined”,从而导致错误
源代码与1.4.0:
(typeof window == “undefined” ? module.exports : this.protobuf = {}, this);
1.4.2:
(typeof window == “undefined” ? module.exports : undefined.protobuf = {}, undefined);