您如何使用requirejs请求命名模块

时间:2014-08-13 12:33:24

标签: javascript requirejs

我认为我只是缺少一些简单的东西,但我一直在努力使用requirejs(v2.1.14)。假设我有一个名称定义的模块(可能来自r.js优化器):即

// mymodule.js
define("modname", ['dep1', 'dep2', 'dep3'], function(){ ... }); 

如果我试图在其他地方要求该模块,它就不起作用。我尝试过使用

require(['../path/to/file/mymodule'], function(mod){ // mod is undefined here. } 

导致mod未定义,

require(['modname'], function(mod){...} 

哪些错误在当前目录中查找名为modname.js的文件。一旦我从输出中删除了define语句的模块名称部分,它就会非常有效。

define(['dep1', 'dep2', 'dep3'], function(mod){ // mod is defined and good here }

我错过了一些需要命名模块的基本部分吗?

1 个答案:

答案 0 :(得分:1)

如果命名模块不在基本目录中(或在与require语句相同的文件中定义),则需要知道在哪里查找命名模块,因此需要添加路径条目。您不能使用相对路径语法。

在你的配置中:

paths: {
    'modname': 'path/to/mymodule',
},

优化器使用它来定义多个模块,同时将它们保存在一个文件中。