这些教程让我使用了Dojo构建系统。但是,我留下了一个问题,即在我的案例中决定是否可以部署完全构建的版本。教程可能会解释它,但我没有得到它。如果是这样的话,请道歉!
我使用一个位于AMD层内的库;我们称之为blackboxLayer.js
。该层内有几个包,但我想如果只有一个包,问题就会一样。因此,我们假设blackboxLayer.js
包含一个名为blackbox
的程序包,其中包含模块blackbox/A
和blackbox/B
。为了确保事情变得有趣,该图层是可启动的。当然,它是封闭源代码。
我的应用模块参考blackbox/A
或blackbox/B
。如何使我的构建配置文件在blackbox
文件中查找blackboxLayer.js
包,而不是在目录中?
感谢您的任何意见。 :)
答案 0 :(得分: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图层,您可以在脚本标记中引用blackboxLayer.js,并省略包def并需要blackboxLayer。
答案 1 :(得分:0)
我发布此问题以来我一直在使用的临时解决方案是不使用dojo的构建器...而是使用轻量级的grunt模式将AMD源连接到一个层,然后我从dojoConfig的{引用该层' {1}}财产。这里可以看到连接过程:https://github.com/mdolidon/grunt-amd-concat