Я создаю библиотеку, которая представляет собой набор папок, содержащих файлы Javascript Model View Controller.
Каждый файл имеет зависимости, объявленные с использованием синтаксиса require:
define([
'modules/moduleA/src/moduleAModel',
'modules/moduleA/src/moduleAController',
], function(moduleAModel, moduleAController) {
function moduleAView(param) {
// ....
}
Я компилирую эту библиотеку, используя GruntJS с замечательным "grunt-contrib-requirejs".
Проблема в том, что у библиотеки нет точки входа, нет основной.
Я хочу, чтобы пользователи могли использовать ее, вызов каждого модуля, когда он им нужен.
Вот мои вопросы:
Во-первых:
Как я могу создать один файл javascript для библиотеки, которая включает все модули, не объявляя их по одному?
Во-вторых:
Как я могу повторно использовать эту библиотеку позже в другом проекте? Я пробовал это:
define(function(require) {
var myLibrary = require('js/external-libs/myMinifiedLibrary.min');
var moduleAV = new moduleAView();
Но, конечно, вторые строки терпят неудачу, есть ли что-то вроде require(myLibrary.moduleAView)
?
Что ты предлагаешь ?
Обновление:
я обнаружил, что когда вы минимизируете все свои модули в одном файле, у вас есть несколько определений на одной странице, это интерпретируется как скрипт для requirejs, и вы должны его загрузить. дважды ! (в первый раз весь файл, во второй раз ваш основной). Затем моя «основная» или точка входа создается вручную (что все еще является проблемой) на ответах рокерест. Итак, решение моего второго вопроса находится в этом сообщении:
http://jaketrent.com/post/dynamically-require-optimized-modules-requirejs/