我定义的全局变量为什么没有起作用?????


如图 rt 是定义的一个方法 代码运行到 var encrypt = new JSEncrypt();检测到JSEncrypt是一个未定义的


如图所示 跪求大佬

1赞

打印下,定义和使用哪个代码先执行

好。。

定义的是插件脚本 是先运行的 然后才是使用脚本

你把 new JSEncrypt() 改成 new window.JSEncrypt() 试试看呢?

还是不行,报一样的错误

这个是工程的demotest_016.rar (774.9 KB)

你好,该问题的原因是你使用的库 JSEncryptCryptoJS 是 UMD 模块格式。1.0.3 仅支持 ES6 模块、IIFE 模块,暂不支持 UMD / AMD 模块格式。1.1 会做以支持


临时解决方案

用以下代码包裹你这两个库文件原始的内容:

!function() {
    var define = undefined;
    var exports = undefined;
    !function() {
        /* 原始文件的内容 */
    }();
}();
3赞

如果是导入的protobuf.js也要这样写吗?
(function(undefined){“use strict”;(function prelude(modules, cache, entries) {
})();
就是以这种方式写的

你好,需要,关键是这两句:

var define = undefined;
var exports = undefined;

!function() {
var define = undefined;
var exports = undefined;

/* 原始文件的内容 */
}();

这样写可以吗

1.1 新增了一个 protobuf 示例:https://github.com/cocos-creator/example-3d

你好,看下 protobuf 示例是否能帮到你? 1.1 新增了一个 protobuf 示例:

https://github.com/cocos-creator/example-3d

async在微信ide中临时方案还是不行。现在没用3D,引擎2.2.2.请问怎么处理呢。


断点看下 undfined 是什么,应该是这个变量在微信中没有

是的,window种没有,现在临时处理办法,改成单独require了