RequireJS调用“;模块”;

RequireJS call to "module"

本文关键字:模块 调用 RequireJS      更新时间:2023-10-17

我正在开发一个我继承的遗留应用程序,该应用程序使用RequireJS和django加载许多JavaScript模块。我对RequireJS有些陌生。

我在其中一个模块中有一个定义调用

define([
    "module",
    "lib/jquery",
    "./scripts/*myScriptName*",
    [...]
], function(module, $, myScriptName, [...]) {
    var pr = module.prefix;
    *do something with pr*
  return myScriptName;
}

"module"是文字的一个值;任何非文字的东西都以"my"开头

我怀疑这里的"模块"指的是requirejs.configconfig块中的myScriptName块(此配置块是配置中paths块和deps块的兄弟):

{
    "config": {
        "myScriptName": {
            "prefix": "http://myhost.mydomain.tld/path/to/myScriptName",
            [...]
        },
    },
    "deps": ["path/to/my/dep"],
    "paths": {
        "lib": "path/to/my/lib",
        "jquery": "path/to/my/lib/jquery"
    }
}

这是django-require(不存在标记)的特性,还是requirejs的特性,这是一个记录在某处的标准块吗?谢谢

RequireJS定义了几个特殊的模块。其中一个命名为module。它将访问作为对象的当前模块。例如,可以通过将module.exports设置为某个值来导出某些内容。这只是从模块中导出内容的一种方法。可以通过module.id获取模块名称,通过module.uri获取模块URL(是的,就是uri)。

还有一个函数module.config(),您可以使用它来访问传递给require.config()的对象中config设置的字段值。当前问题中的代码似乎不正确,应该是:

var pr = module.config().prefix;

另一个特殊的模块是require,它只是提供了一个可以用来加载模块的函数的参考。

所有这些都是API中记录的库存RequireJS功能。