Как сделать эталонные модули профиля сборки, находящиеся в слое библиотеки "черного ящика"?

Уроки помогли мне освоить систему сборки Dojo. Тем не менее, у меня остался вопрос, который создаст или сломает возможность развертывания полностью собранной версии в моем случае. Возможно, что учебник объясняет это, но я этого не понял. Извинения, если это было так!

Я использую библиотеку, которая живет внутри слоя AMD; давай называть это blackboxLayer.js, В этом слое есть несколько пакетов, но я полагаю, что вопрос был бы таким же, если бы был только один. Так скажем, что blackboxLayer.js содержит один пакет под названием blackboxс модулями blackbox/A а также blackbox/B, Чтобы быть уверенным, что все весело, этот слой является загрузочным. И, конечно, это закрытый исходный материал.

Ссылка на модули моего приложения blackbox/A или же blackbox/B, Как мне сделать свой профиль сборки иди искать blackbox пакет внутри этого blackboxLayer.js файл, а не в каталоге?

Спасибо за любой вклад.:)

2 ответа

Решение

Временное решение, которое я использовал с тех пор, как был опубликован этот вопрос, - НЕ использовать конструктор dojo... Вместо этого я использую облегченный шаблон grunt, который объединяет источники AMD в слой, а затем я ссылаюсь на слой из dojoConfig. deps имущество. Процесс объединения можно увидеть здесь: https://github.com/mdolidon/grunt-amd-concat

Если встроенный файл blackboxLayer.js находится в относительном пути /release/blackbox/layersесть отдельный слой додзё

<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 в теге script и опустить пакет def и требовать blackboxLayer.

Другие вопросы по тегам