requirejs加载有依赖关系的模块时报错

发布于 2022-09-05 15:25:03 字数 2181 浏览 15 评论 0

这个问题很奇怪,假如有两个模块,一个是pop,一个是callrestutil, pop是一个简单的弹窗模块,不依赖其他模块;callrestutil是一个ajax请求模块,依赖于pop模块做一些alert操作。

如果仅仅加载pop模块,不会报错:

require(['pop'], function(pop) {
    pop.alert('测试');
})

如果加载callrestutil模块,就会报错:

require(['callrestutil'], function(callrestutil) {
    // 这里有一些ajax的操作
    callrestutil.send(..., function(data){
        //...
    })
})

报错信息为:

require.js:168 Uncaught Error: Script error for "pop", needed by: callrestutil
http://requirejs.org/docs/errors.html#scripterror
    at makeError (require.js:168)
    at HTMLScriptElement.onScriptError (require.js:1738)

在chrome的network面板内,可以看到对pop.js的加载:
图片描述
图片描述
但是这个url我直接右键 open in new tab,是可以打开的。

callrestutil模块定义为:

define(["ajaxutil", 'uri', 'pop'], function(ajaxUtil, Uri, Pop) {
    var util = {};
    var traceid;
    util.sessionfilter = function(code, indexIM) {
            if (code == "0000201") {
                var aa = indexIM.indexOf("/npage/indexIM");
                var bb = indexIM.indexOf("/npage/register");
                if (aa != -1 || bb != -1) {
                    return false;
                } else {
                    return true;
                }
            } else {
                return false;
            }
        },
    ...

我的requirejs在页面的底部载入:

<script src="/appframe/kernel/require.js"></script>
<script src="/appframe/kernel/coreutil.js"></script>

requirejs的配置在coreutil.js内:

require.config({
        baseUrl: '/appframe/component',
        paths: {
            commonutil:"buss/private/callrestutil",
            pop:"buss/private/pop",
            ...
        }
    });

麻烦大神帮忙看看这是为什么,参考文档:
http://www.ruanyifeng.com/blo...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

病毒体 2022-09-12 15:25:03

最后问题找了, 竟然是因为我安装了Adblock Plus插件... 让我哭一会.....

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文