Отказ от ответственности: Я всего драм n00b.AMD Optimizer (r.js) не производит никакого вывода
У меня есть проект, который я пытаюсь преобразовать в AMD. Первоначально весь код находился в одном файле. Я смог разделить функциональные модули на свои собственные модули, но все они были в одном файле. Я решил разделить их на модули AMD, а затем объединить все с помощью оптимизатора. Полезный вкладчик уже преобразовал мой модуль в UMD, и поэтому было довольно просто переместить все.
Мой главный файл (то есть, моя библиотека, что я пишу) выглядит следующим образом:
(function (root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(factory);
} else {
// Browser globals
root.regula = factory();
}
}(this, function() {
define(
[
"utils/MapUtils",
"utils/DOMUtils",
"service/BindingService",
"service/ExceptionService",
"service/ConstraintService",
"service/ValidationService",
"service/GroupService"
],
function (MapUtils, DOMUtils, BindingService, ExceptionService, ConstraintService, ValidationService, GroupService) {
...
...
return {
configure: configure,
bind: bind,
unbind: unbind,
validate: validate,
custom: custom,
compound: compound,
override: override,
Constraint: ConstraintService.Constraint,
Group: GroupService.Group,
DateFormat: DateFormat,
Exception: ExceptionService.Exception
};
}
);
}));
И моя структура каталогов выглядит следующим образом:
regula
├── amdtest.html
├── dist
│ └── src
└── src
├── build.js
├── domain
│ └── CompositionGraph.js
├── jquery.regula.js
├── lib
│ ├── closure
│ │ └── compiler.jar
│ ├── require
│ │ ├── require.js
│ │ └── r.js
│ └── rhino
│ └── js.jar
├── parser
│ └── Parser.js
├── regula.js
├── service
│ ├── BindingService.js
│ ├── ConstraintService.js
│ ├── ExceptionService.js
│ ├── GroupService.js
│ └── ValidationService.js
└── utils
├── ArrayUtils.js
├── DOMUtils.js
└── MapUtils.js
build.js
Мои является:
({
appDir: "../",
baseUrl: "src",
dir: "../dist",
modules: [{
name: "regula"
}]
})
Я использую Rhino и Closure для запуска оптимизатора следующим образом:
java -cp lib/rhino/js.jar:lib/closure/compiler.jar org.mozilla.javascript.tools.shell.Main lib/require/r.js build.js
К сожалению, это не приводит к каким-либо выводам или ошибкам. Все модули Javascript, на которые ссылаются в regula.js
, также являются модулями AMD. Любая идея, что я делаю неправильно? Я могу разместить дополнительную информацию, если это поможет. Я не хотел делать огромную дамп случайной информации, потому что, как я упоминал ранее, я полный новичок, когда дело доходит до AMD, и поэтому я не совсем уверен, что актуально.
Похож на ту же самую проблему, которая разрешена здесь: [Require.js optimizer - Неполадки в работе] (http://stackoverflow.com/questions/15070974/require-js-optimizer-trouble-getting-going) [короче: вы не указали флаг «-o» на r.js] – kryger
@kryger Awesome! Спасибо; вот и все! Если вы добавите свой комментарий в качестве ответа, я могу его принять. –
Ну, это точно оптимизировано. :-п – ceejayoz