问题描述
我刚刚开始使用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
因此,我认为不会有问题,但没有mod.sayHello(),也没有sayBye()和console.log(mod.name)=unfinded。
我尝试了console.log( mod )
,结果打印如下:
Object {id: "_@r6", uri: "script/[email protected]", 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不加载名为";module e.js";的文件或模块的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!