0

这些教程让我开始使用 Dojo 构建系统。但是,在我的案例中,我留下了一个问题,该问题将决定部署完全构建的版本的可能性。教程可能解释了它,但我没有得到它。抱歉,如果是这样的话!

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

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

感谢您的任何意见。:)

4

2 回答 2

1

如果构建的文件 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,省略包def和需要blackboxLayer。

于 2015-04-07T12:46:28.920 回答
0

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

于 2015-04-13T08:46:28.263 回答