RequireJS 中的命名模块与未命名模块

2024-04-07

我们可以通过给它命名来在 requireJS 中创建一个模块:

define("name",[dep],function(dep) {
      // module definition
});

或者我们可以创建一个不包含名称的:

define([dep],function(dep) {
      // module definition
});

创建模块的更好方法是什么?我知道 RequireJS 建议避免分配模块名称。

但我想知道在什么情况下我们可以不必给模块命名。这会影响使用吗?每种方式的优点和缺点是什么?


这就是requirejs的内容文档 http://requirejs.org/docs/api.html#modulename关于命名模块的主题说:

这些通常由优化工具生成。您可以自己显式命名模块,但这会降低模块的可移植性——如果将文件移动到另一个目录,则需要更改名称。通常最好避免对模块名称进行编码,而只是让优化工具刻录模块名称。优化工具需要添加名称,以便可以将多个模块捆绑在一个文件中,以便在浏览器中更快地加载。

但假设你want您的模块有一个众所周知的名称,以便始终可以从任何其他模块以相同的方式要求它。那么您需要使用define用名字打电话?一点也不。您可以使用paths http://requirejs.org/docs/api.html#config-paths在你的配置中:

paths: {
   'jquery': 'external/jquery-1.9.1',
   'bootstrap': 'external/bootstrap/js/bootstrap.min',
   'log4javascript': 'external/log4javascript',
   'jquery.bootstrap-growl': 'external/jquery.bootstrap-growl',
   'font-awesome': 'external/font-awesome'
},

通过此配置,jQuery 可以被要求为"jquery", Twitter Bootstrap 为"bootstrap"等。最佳做法是离开通话define的名字优化器 http://requirejs.org/docs/optimization.html.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RequireJS 中的命名模块与未命名模块 的相关文章

随机推荐

  • 创建一个用于切换 jQuery 选项卡的“下一步”按钮

    如何创建一个滚动到下一个 jQuery 选项卡的按钮 我希望选项卡中有一个下一个按钮 可以滚动到下一个选项卡 有点像分步教程 如何才能做到这一点 到目前为止我的代码如下 HTML div ul li a href fragment 1 sp
  • 使用 MVVM 时将事件放在哪里?

    我应该将所有事件放在视图代码后面还是有更合适的方法 例如将命令放在 ViewModel 中 例如 我想在双击数据网格行时打开选项卡 我应该在哪里处理这个事件 不 你不应该将事件放在代码后面 在MVVM 模型 视图 视图模型 设计模式中 视图
  • 从另一个包导出的函数

    我正在按照以下说明进行操作https golang org doc code html Workspaces https golang org doc code html Workspaces链接 我构建了我的第一个 Go 程序 所以 我尝
  • 通过号码确定信用卡类型?

    是否可以仅根据信用卡号来确定信用卡类型 这是推荐的还是我们应该始终询问客户他们使用的信用卡类型 我用谷歌搜索了一下 发现了这个算法 http cuinl tripod com Tips o 1 htm http cuinl tripod c
  • jquery datepicker 多个实例

    我制作了一个 RequestForQuote 表格 在其中我可以添加新职位以获取 RFQ 基本上 在我的例子中 通过 PHP 可以很容易地完成这一点 工作真的很好 您可能想看一下 可以在以下位置找到 我的网站 http www thermo
  • Angular 和 google 距离矩阵没有访问控制标头

    我越来越 XMLHttpRequest 无法加载 请求中不存在 Access Control Allow Origin 标头 资源 在我的角度应用程序中 我向 google 距离矩阵发出了 http 请求 如下所示 var url http
  • 如何不断提示输入直到有效?

    我试图做到这一点 以便当给定的答案既不是 1 也不是 2 时 显示消息 请输入有效答案 出现了 又回到了问题 这是我的代码 Coloration ConsoleColor DarkMagenta What do you want to do
  • 迭代对象属性

    var obj name Simon age 20 clothing style simple hipster false for var propt in obj console log propt obj propt 变量如何propt
  • 如何在 Swing 中左对齐和右对齐组件?

    我有一个看似简单的问题 我有一些标签想要向左对齐 但是当我调整大小时 它们开始向中间漂移 这将打乱我计划添加的其他组件的对齐 我该怎么做才能让它们保持在左边 这是简短 简单的代码 不确定我的问题是什么 package com protoca
  • Proguard 找不到引用的类 com.google.ads.internal.state.AdState

    好吧 伙计们 这变得非常烦人 试图让我的项目在导出 时工作 Proguard 不断给我这个错误 Proguard returned with error code 1 See console 这是我在控制台中收到的完整错误 Warning
  • 使用 require.js 缓存时的调试

    使用 require js 我注意到 依赖项通常由浏览器缓存 即使我强制页面完全重新加载 command shift R 也不会更新 为了始终拥有更新的文件 我让 require js 要求文件在 url 后添加 datestamp 这种方
  • docker 将 Ctrl+p 更改为其他内容?

    我在用docker run bin bash开发我的容器 每次我想使用时Ctrl p在终端或 emacs 中 我必须输入两次 因为 docker 使用它来与容器分离 Ctrl p Ctrl q 我该如何改变Ctrl p到 emacs 或终端
  • 使用 shell 脚本在远程计算机上执行多个命令

    我有一个Java程序Desktop testfolder xyz jar在远程机器上 它在同一文件夹中有一个配置文件 当我通过 SSH 连接到机器时 我会 ssh user remote java cp Desktop testfolder
  • 如何在Android中使用Parse实现RecyclerView的无限滚动

    我在网上找到的大多数文章都使用 setLimit 函数来加载更多项目 但这不是一种有效的方法 因为我们会回忆现有的对象 我使用带有自定义适配器的 RecyclerView 来加载我的列表项 一旦我从 Parse 服务器收到对象列表 我就会根
  • 从树视图中选择会自动将字符串数字转换为整数

    在我正在开发的项目中 您可以编辑以树形视图形式显示的数据内容 数据字段之一是始终以 0 开头的电话号码 在表中选择正确的记录并使用其中提取数据时tree item tree selection 由于某种原因 电话号码会自动转换为整数 因此当
  • 如何使用 ACM 库 (ConsoleProgram) 编写 Java 程序?

    我想问一个关于我的程序的小问题 这是我的代码示例 public static void main String args int q int p int thelargest int thesmallest Scanner input ne
  • Angular 2 路由器路径

    我有两个关于 Angular 2 路由器路径的问题 我花了一些时间在谷歌上搜索它 但没有运气 无论如何我有以下路由设置 path contract component ContractInsertUpdateComponent childr
  • 远程片段上的引导模式“加载”事件

    我目前正在使用 Twitter Bootstrap 模式组件 并且遇到一个问题 我在使用 data remote 属性远程加载的内容中的输入字段上使用 jquery 验证插件 因为内容是在 dom 上运行 jquery 验证之后加载的 所以
  • Glassfish 3.1.1 启动失败

    我正在运行 glassfish 3 1 1 在我的开发机器 使用 Windows XP 上运行了一段时间 但今天早上它无法启动 跑步asadmin start domain domain1它报告 Waiting for domain1 to
  • RequireJS 中的命名模块与未命名模块

    我们可以通过给它命名来在 requireJS 中创建一个模块 define name dep function dep module definition 或者我们可以创建一个不包含名称的 define dep function dep m