如何使用requirejs递归地要求目录及其子目录上的所有文件?
例如,如果我们有一个目录,如:
vendor
vendor1
vendor11.js
vendor2
vendor21.js
vendor22.js
vendor23.js
vendor3
vendor31.js
我们如何加载整个目录供应商?使用类似require(['vendor/*'], myCallbackFunction)
的函数?
此功能应加载等效的:
require(
['vendor/vendor1/vendor11.js'],
require(
['vendor/vendor2/vendor21.js'],
require(
['vendor/vendor2/vendor22.js'],
...and so on
... require(
['vendor/vendor3/vendor31.js'],
myCallbackFunction
)
)
)
);
RequireJS不提供根据模式加载模块的功能。传递给require
的必须是实际模块名称的列表。
一种选择是,当您构建应用程序时,根据您想要的模式扫描模块,并创建一个加载所有其他模块的模块。例如,它可以命名为'vendor_all'
,并且可以包含:
define(['vendor/vendor1/vendor11', 'vendor/vendor2/vendor21', ...]);
然后,您可以执行require(['vendor_all'], function () {...});
或将'vendor_all
'放入另一个模块的依赖项列表中。