RequireJS不加载名为"module e.js"的文件或模块 [英] RequireJS not loading a file or module named "module.js"

查看:17
本文介绍了RequireJS不加载名为"module e.js"的文件或模块的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我刚刚开始使用RequireJS。我尝试了一种简单的代码,但是一种方式可以工作,而另一种方式不行。

"script"文件夹有"main.js"、"mode.js"、"requition.js"

<script data-main="script/main.js" src="script/require.js"></script>

在main.js中

requirejs( ['module'], function( mod ) {
    mod.sayHello();
} );

在mode.js:

define( {
    name : "value",
    sayHello : function() {
        alert( "Hello" );
    },
    sayBye : function() {
        alert( "Bye" );
    }
} );

我希望baseUrl是这里提到的"script":

http://requirejs.org/docs/api.html#jsfiles

通常将baseUrl设置为与要为页面加载的顶级脚本的data-main属性中使用的脚本相同的目录。

因此,我认为不会有问题,但没有mod.sayHello(),也没有sayBye()和console.log(mod.name)=unfinded。

我尝试了console.log( mod ),结果打印如下:

Object {id: "_@r6", uri: "script/_@r6.js", exports: Object}

当我使用["script/module e.js"]代替["module"]时,console.log( mod )打印如下:

Object {name: "value"}
name: "value"
sayBye: ()
sayHello: ()
__proto__: Object

和mod.sayHello()、mod.sayBye()、mod.name都起作用。

在main.js的开头包含以下内容相同:

requirejs.config( {
    baseUrl: "script"
} );

我做错了什么.请帮帮忙。

推荐答案

为您的模块使用与module不同的名称。首先,它是一个非常缺乏信息的名称,但是名为module的模块是RequireJS的特殊模块。它是一个模块,提供有关您当前所在模块的信息。例如,如果foo.js包含以下代码:

define(['module'], function (module) {
    console.log(module.id);
});

并且此文件在您请求名为foo的模块时加载,则console.log将在控制台上显示"foo"

文档没有强调module的存在,但在解释配置选项config的作用时谈到了它。因为您可以通过module.config()访问模块的配置。

要求"script/module.js"起作用的原因是,执行此操作时需要名为script/module.js的模块,而不是module

这篇关于RequireJS不加载名为&quot;module e.js&quot;的文件或模块的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆