RequireJS未加载名为“的文件或模块”;模块.js“;
我刚开始使用RequireJS。我尝试了一个简单的代码,但一种方法有效,而另一种方法无效 文件夹“script”有“main.js”、“module.js”、“require.js”RequireJS未加载名为“的文件或模块”;模块.js“;,requirejs,Requirejs,我刚开始使用RequireJS。我尝试了一个简单的代码,但一种方法有效,而另一种方法无效 文件夹“script”有“main.js”、“module.js”、“require.js” 在main.js中 requirejs( ['module'], function( mod ) { mod.sayHello(); } ); 在module.js中: define( { name : "value", sayHello : function() { a
在main.js中
requirejs( ['module'], function( mod ) {
mod.sayHello();
} );
在module.js中:
define( {
name : "value",
sayHello : function() {
alert( "Hello" );
},
sayBye : function() {
alert( "Bye" );
}
} );
我希望baseUrl是这里提到的“脚本”:
baseUrl通常设置为与要为页面加载的顶级脚本的数据主属性中使用的脚本相同的目录
所以,我认为不会有问题,但mod.sayHello()或sayBye()和console.log(mod.name)=未定义
我尝试了console.log(mod)
,它打印出如下内容:
Object{id:“@r6”,uri:“script/@r6.js”,exports:Object}
当我使用[“script/module.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
的模块是RequireJS的特殊模块。它是一个模块,提供有关您当前所在模块的信息。例如,如果foo.js
包含以下代码:
define(['module'], function (module) {
console.log(module.id);
});
当您请求名为foo
的模块时,将加载此文件,然后console.log
将在控制台上显示“foo”
本文档并未突出说明模块的存在,但在解释配置选项的功能时,会提及该模块。因为您可以通过module.config()
访问模块的配置
需要“script/module.js”
工作的原因是,当您这样做时,您需要一个名为script/module.js
的模块,而不是module
,我继续阅读文档:
它导致了一个github,其中包含了关于这方面的信息:
事实证明,“模块”与“需求”、“导出”一样,都是一种“魔法模块”
和“模块”
提供有关当前模块的模块ID和位置的信息
哦……我刚刚发现一个名为“test.js”的文件可以工作(在不同的计算机上)。所以这可能是我的代码可以工作但不能同时工作的原因。所以,已经存在“模块”,所以它不会给我“脚本错误…无论找不到什么文件名”。我应该用其他文件夹中的“module.js”试试。这是我从未预料到的。我只阅读了1.3版本的文档,然后自己尝试了一下。谢谢你这么好的信息。