在没有r.js的情况下连接和缩小AMD模块

Concatenate and minify AMD modules without r.js

本文关键字:连接 缩小 AMD 模块 情况下 js      更新时间:2023-09-26

我有一个项目,它使用了很多AMD模块。如何在不使用r.js优化器的情况下组合和缩小这些模块?如果我所有的AMD模块都被命名了,我可以安全地连接和缩小它们吗?

如果我所有的AMD模块都被命名了,我可以安全地连接和缩小它们吗?

这取决于情况。对于足够简单的设置,答案是"是"。例如,如果您将模块A定义为define('A', ['B'], function (B) { return ... });,将B定义为define('B', function () { return ... }),并且您传递给require.config的配置使得请求模块可以请求为AB,那么您只需将它们连接起来,并使用所需的任何工具缩小它们。您可以跳过使用r.js

对于更复杂的设置,在不使用r.js的情况下进行串联和缩小会带来麻烦。例如,shim配置需要特殊处理。填充模块放入优化捆绑包的顺序很重要,r.js为它们创建define存根,以便首先加载它们所需的任何依赖项,并实际导出填充程序的exports选项中定义的任何内容。