Как сделать эталонные модули профиля сборки, находящиеся в слое библиотеки "черного ящика"?
Уроки помогли мне освоить систему сборки 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.