将 AMD 支持添加到库时,是否还应在 define() 中列出其依赖项

When adding AMD support to a library, should it also list its dependencies in define()

我希望将 AMD 支持添加到一个库中,尽管我并不完全理解它。我有以下添加 AMD 支持的代码:

if (typeof define === "function" && define.amd) {
  define(["imagesloaded", "hammer"], defineSequence);
} else {
  sequence = defineSequence(imagesLoaded, Hammer);
}

库依赖第三方库imagesLoaded和Hammer。我在 define() 中将它们列为依赖项,但我担心这是否会将使用我的插件的开发人员限制在特定的文件结构和命名约定中,其中 imagesloaded、hammer 和 sequence 都必须存在于同一目录中等级.

上面的代码是否正确启用了 AMD 支持?这种限制是否在意料之中?

更新:正确答案中解释的我的路径配置示例:

require.config({
  baseUrl: 'scripts',
  paths: {
    imagesLoaded: 'imagesloaded.pkgd.min',
    Hammer: 'hammer.min'
  }
});

Path config 可用于定义依赖项的路径。所以你不必担心用户目录结构。

您应该只提供您希望依赖的 AMD 模块及其应提供的功能的信息。它甚至可能是抽象的,例如 $(来自 jquery、zepto 或 sizzle)