RequireJS Map多个文件的配置

时间:2017-06-14 02:48:59

标签: requirejs require

我有一些文件,比如,

test/test1,
test/test2,
test/test3

我希望将路径重命名为

newtest/test1,
newtest/test2,
newtest/test3

因此,如果我们尝试要求上述文件,那么它将指向新路径。

在require中,存在一对一的映射,但不确定,如果这样的事情是可以实现的,

require.map = {
  "test/*": "newtest/*",
}

任何帮助:)

2 个答案:

答案 0 :(得分:0)

map配置选项支持映射模块前缀。这是一个例子:

require.config({
  map: {
    "*": {
      "foo": "bar"
    }
  }
});

define("bar/x", function () {
  return "bar/x";
})

require(["foo/x"], console.log);

尝试加载require的上一次foo/x调用将加载bar/x

这与使用map的模式匹配一​​样好。 RequireJS不支持在其中放置任意模式。使用"test/*": "newtest/*"无效。我在"*"中使用的map不是模式。它是一个硬编码值,表示“在所有模块中”,发生看起来像一个glob模式。因此,上面的map表示“在所有模块中,当需要foo时,请加载bar”。

答案 1 :(得分:0)

我想知道您是否真的需要map。您可能只使用paths。引用map文档

这种功能对于大型项目来说确实很重要 可能有两组模块需要使用两个不同的版本 'foo',但他们仍然需要彼此合作。

另请参阅paths文档

使用上述示例配置,“ some / module”的脚本标签将为 src =“ / another / path / some / v1.0 / module.js”。

在您的示例中,如何使用paths将目录从test映射到newtest

paths: {
  "test": "newtest"
}