如何从Dojo层加载AMD模块

j

在我们的应用程序中,我们将dojo用于某些小部件(包括多个自定义小部件),并将AMD格式用于多个模块。

例如

define("foo.bar.module", ["dojo/_base/declare"], function(declare) {

   var module  = declare("foo.bar.module", [], {
      // Do Stuff
   }

   return module;
});

由于每个模块都是单独请求的,因此当前工作正常。但是,我们已经确定使用dojo层将其折叠为一个请求将是一个很好的优化。

问题是,我们先加载该层,然后尝试要求该层中定义的模块,但是dojo加载器找不到该模块。要使此工作有效,构建配置文件中是否特别需要某些内容?一些帮助,或指向文档的链接将不胜感激。

C Snover

模块ID是路径,而不是对象标识符。第一个论点define是错误的。应该是foo/bar/module它是否将存在。但是,您永远不应向提供第一个字符串参数define,因为这会破坏可移植性。declare除非有意尝试在全局范围内创建构造函数,否则也不应提供第一个字符串参数

总之,您的模块定义应为:

define(["dojo/_base/declare"], function(declare) {

   var module = declare([], {
      // Do Stuff
   }

   return module;
});

最后,关于构建的层,有两点需要注意:

  1. 层只是构建的模块,还包含其他模块。它们只能从构建之前在应用程序中已经存在的模块中创建。例如,如果您有一个app/main用于加载整个应用程序模块,那将是一个很好的图层模块。app/layerA仅为新层创建新模块将是错误的。
  2. 在加载该层之前,加载器无法知道该层包含哪些模块。如果您使用模块“ a”,“ b”和“ c”构建层“ a”,则require([ "a", "b", "c" ])这三个模块将作为单独的请求加载,因为加载器不知道“ a”包含“ b”和“ c” 。在这种情况下,您必须始终先加载“ a”,然后再加载“ b”和“ c”,这时它们将仅从图层中加载而不是单独加载。
  3. 除了boot: true构建配置文件(dojo/dojo)中的一层外,其他层的加载方式必须与其他任何模块相同-即,使用requiredefine而不要<script>为层模块包括标签。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从Dojo层加载AMD模块

来自分类Dev

如何在 dojo2 应用程序中加载 AMD 模块

来自分类Dev

TheIntern测试框架下加载Dojo AMD模块失败

来自分类Dev

Dojo AMD 未加载自定义模块

来自分类Dev

如何在Dojo AMD中包括旧模块

来自分类Dev

Dojo AMD模块更改“ this”的引用

来自分类Dev

如何模拟加载了dojo / node的Node.js模块

来自分类Dev

Dojo:覆盖预加载的模块

来自分类Dev

Dojo:覆盖预加载的模块

来自分类Dev

如何加载在单个文件中定义的多个命名AMD模块?

来自分类Dev

如何在节点中加载单个AMD模块?

来自分类Dev

dojo AMD加载顺序是什么?

来自分类Dev

如何在初始功能之外以适当的AMD方式使用自定义Dojo模块?

来自分类Dev

如何使用dojo按定义的顺序加载非AMD依赖项?

来自分类Dev

一般的Dojo模块加载

来自分类Dev

在Dojo中交换AMD模块依赖性

来自分类Dev

Dojo / AMD模块ID区分大小写

来自分类Dev

使用 SystemJS 加载捆绑的 AMD 模块

来自分类Dev

如何使用jspm / system.js正确加载本地AMD模块

来自分类Dev

如何在dojo构建层中包含所有文件?

来自分类Dev

如何在dojo层中使用require({cache:{?

来自分类Dev

如何防止模块加载

来自分类Dev

创建DOJO自定义版本时,如何从层中排除dojo文件?

来自分类Dev

IBM Worklight 6.0-如何在预构建的Dojo层中包括Dojo补丁?

来自分类Dev

如何从普通 JavaScript 访问 AMD 模块(“定义”)?

来自分类Dev

使用AMD模块和打字稿加载Bootstrap

来自分类Dev

Typescript AMD外部模块加载,角度未定义

来自分类Dev

如何将javascript AMD模块导入外部TypeScript模块?

来自分类Dev

更改模块后如何重新加载模块?

Related 相关文章

热门标签

归档