7

我已经使用 requirejs 编写了一个 JavaScript 应用程序来处理依赖注入。我已经编译了该文件,但是在将其作为脚本包含时出现了明显的错误:

未捕获的 ReferenceError:未定义定义

如果开发人员决定不使用 AMD 加载器,我希望我的 JavaScript 应用程序不依赖于 AMD 加载器。但是,由于应用程序的复杂性,我想用它来处理我的应用程序的依赖项。

是否有可用的编译器编译 JavaScript 以删除 AMD 依赖项?我已经看到了关于 Grunt 的一些嗡嗡声,但是对于这是否是 Grunt 的一个特性,我还没有找到任何直接的答案。

4

1 回答 1

5

您无法完全删除 require/define 依赖项,但您可以将其替换为不会带来任何显着性能损失的更小的垫片。请参阅如何向不依赖 RequireJS 的其他人提供库?优化指南的部分:

如果您正在构建一个用于可能不使用 RequireJS 或 AMD 加载器的网页的库,您可以使用优化器将所有模块组合到一个文件中,然后将它们包装在一个函数中并使用 AMD API shim。这允许您发布不随所有 RequireJS 发布的代码,并允许您导出任何类型的 API,该 API 可以在没有 AMD 加载程序的普通网页上运行。

almond是一种非常小的 AMD API shim,因此当您使用 RequireJS 优化器将所有模块构建到一个文件中时,它可以用来代替 require.js。wrap 构建配置选项将在代码周围放置一个函数包装器,或者如果您需要执行额外的逻辑,您可以提供自己的包装器。

于 2013-07-09T15:21:13.400 回答