Requirejs:路径与 map

标签 requirejs

尝试了解在哪里使用带通配符的“ map ”和“路径”是正确的。

查看 require 源代码(但肯定不是 100% 流畅),这两个片段在功能上似乎没有区别。真的吗?

使用路径:

  require.config({
    baseUrl: "include/js/",
    paths: {
     foo: "stuff/foo",
    }
  });

使用 map :

  require.config({
    baseUrl: "include/js/",
    map: {
     '*': {foo: "stuff/foo"},
    }
  });

最佳答案

来自 RequireJS 文档“此外,路径配置仅用于设置模块 ID 的根路径,而不用于将一个模块 ID 映射到另一个模块 ID。”

这意味着“路径”仅用于在资源不在默认位置 (baseUrl) 时映射资源的路径。我想这就是您想要做的。

另一方面,使用“map”,您可以拥有资源的多个版本(foo1、foo2...),您可以将其映射为从不同路径加载(即您想要从桌面浏览器加载 foo1 并foo2,它是移动浏览器中第一个版本的修改)。

因此,除非您有不同版本的 foo,否则我会使用“path”,尽管您是对的,并且“map”在这种情况下也可以工作。

关于Requirejs:路径与 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19216580/

相关文章:

javascript - 2014 年 RequireJS 与 Backbone、Underscore 和 jQuery 的依赖关系

backbone.js - 我们如何使用 Backbone Marionette 复合 View 进行分页?

javascript - Require JS 仍然没有按顺序加载 shim 内容

webpack - 将 js 文件添加到 nuxt 配置

javascript - 将库包含在 require.js 中

javascript - 让我的 javascript 函数 requirejs/amd 友好?

javascript - RequireJS 两次加载同一个模块以获得两个独立的命名空间

javascript - RequireJS:找到导致错误的脚本

javascript - 使用 require.js 全局设置 lodash/underscore 模板设置

javascript - Socket.io 与 require.js 异步且 io 未定义