如何制作 "black box" 库层中的构建配置文件引用模块?

How do I make a build profile reference modules that are within a "black box" library layer?

这些教程让我开始使用 Dojo 构建系统。但是,我留下了一个问题,它会决定或破坏在我的案例中部署完全构建的版本的可能性。教程可能解释了它,但我没有明白。如果是这样的话,我们深表歉意!

我使用位于 AMD 层内的库;我们称它为 blackboxLayer.js。该层内有几个包,但我想如果只有一个,问题会是一样的。因此,假设 blackboxLayer.js 包含一个名为 blackbox 的包,其中包含模块 blackbox/Ablackbox/B。为了确保事情有趣,该层是可启动的。当然,它是闭源的东西。

我的应用程序模块引用 blackbox/Ablackbox/B。如何让我的构建配置文件去寻找 blackboxLayer.js 文件中的 blackbox 包,而不是在目录中?

感谢您的任何意见。 :)

如果构建文件blackboxLayer.js在相对路径/release/blackbox/layers,有一个单独的dojo层

<script type="text/javascript" src="path to dojoLayer.js"></script>

var dojoConfig = {
    packages: [
        { name: 'blackbox', location: 'release/blackbox' }
    ]
};

那么这个函数里面的代码可以引用模块A和B,

require(['blackbox/layers/blackboxLayer'],
function () {
    require(['dojo/parser', 'dojo/ready'],
    function (parser, ready) {
        ready(function () {
            require(['blackbox/A', 'blackbox/B'],
            function (blackboxA, blackboxB) {

                // call blackboxA and blackboxB

            });
        });
    });
});

如果没有单独的dojo层,可以在script标签中引用blackboxLayer.js,省略package def和require blackboxLayer。

自从这个问题发布以来,我一直在使用的临时解决方案是不使用 dojo 的构建器...相反,我使用轻量级 grunt 模式将 AMD 源连接到一个层中,然后我从中引用该层dojoConfig 的 deps 属性。连接过程在此处可见:https://github.com/gruntjs-updater/grunt-amd-concat