Durandal 中的模块 ID 来自哪里?
Where does the module id come from in Durandal?
我正在使用 durandal 开发旧版应用程序。我在定义模块时注意到:
define({
message: 'hello world'
});
然后 grunt 的输出如下所示:
define('filePath\fileName',{
message: 'hello world'
});
filePath\fileName
从何而来?我尝试用简单的 RequireJS 构建一个模块,我必须自己提供这个 id。我读到 Durandal 使用一种称为 AMD(异步模块定义模式)的模式。 filePath\fileName
使用 fileName.js
约定是 AMD 模式的一部分吗?
AMD 优化器在优化您的模块时添加这些 ID。
只要每个文件有一个模块,AMD 加载器就能够从文件路径和模块加载器的配置中推断出模块 ID。因此,当每个文件有一个模块时,从 define
调用中省略模块 ID 并让 AMD 加载程序推断模块 ID 是可以的。顺便说一下,这被称为“匿名 define
。
优化器的工作之一是将多个模块合并到一个文件中。当优化器将多个模块合并到同一个文件中时,将无法区分哪个 define
调用属于哪个模块,除非优化器也记录了此信息。 AMD规范的设计方式,记录哪个define
属于哪个模块的方式是在define
.
的第一个参数中添加模块id
我正在使用 durandal 开发旧版应用程序。我在定义模块时注意到:
define({
message: 'hello world'
});
然后 grunt 的输出如下所示:
define('filePath\fileName',{
message: 'hello world'
});
filePath\fileName
从何而来?我尝试用简单的 RequireJS 构建一个模块,我必须自己提供这个 id。我读到 Durandal 使用一种称为 AMD(异步模块定义模式)的模式。 filePath\fileName
使用 fileName.js
约定是 AMD 模式的一部分吗?
AMD 优化器在优化您的模块时添加这些 ID。
只要每个文件有一个模块,AMD 加载器就能够从文件路径和模块加载器的配置中推断出模块 ID。因此,当每个文件有一个模块时,从 define
调用中省略模块 ID 并让 AMD 加载程序推断模块 ID 是可以的。顺便说一下,这被称为“匿名 define
。
优化器的工作之一是将多个模块合并到一个文件中。当优化器将多个模块合并到同一个文件中时,将无法区分哪个 define
调用属于哪个模块,除非优化器也记录了此信息。 AMD规范的设计方式,记录哪个define
属于哪个模块的方式是在define
.