javascript - 如何使用requirejs递归加载目录?

标签 javascript recursion callback requirejs

如何使用requirejs递归地要求目录及其子目录中的所有文件?

例如,如果我们有一个类似的目录:

vendor
    vendor1
        vendor11.js
    vendor2
        vendor21.js
        vendor22.js
        vendor23.js
    vendor3
        vendor31.js

我们如何加载整个目录 vendor ?使用像 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' 放入依赖项列表中另一个模块。

关于javascript - 如何使用requirejs递归加载目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29175692/

相关文章:

javascript - 在for循环中从函数返回分配的变量?

javascript - addEventListener 在 useEffect Hook 中不起作用

ruby - 如何将所有文件递归复制到 Ruby 中的平面目录?

java - 删除 BST 中的节点(2)

java - 如何使用文本文件递归制作树?

Javascript 异步返回 bool 到外部函数

asp.net - 取消 ASP.NET 回调处理

javascript - 如何在javascript中制作类似文本变化效果的矩阵?

javascript - 如何在循环中的所有 AJAX 请求完成后执行回调?

javascript - RequireJS - 依赖注入(inject)器或服务定位器