Разрешение модулей с помощью require.js и Java / носорог
я пытаюсь получить требование.js для загрузки модулей на стороне сервера с Java 6 и Rhino.
я могу загрузить require.сам js в порядке. Носорог может видеть . Я могу сказать, потому что носорог жалуется, что он не может найти функцию, когда я меняю require()
к чему-то еще вроде requireffdkj()
.
но когда я пытаюсь потребовать даже простой JS, как hello.js
var hello = 'hello';
используя любое из следующего:
require('hello');
require('./hello');
это не работает. Я получаю
Caused by: javax.script.ScriptException: sun.org.mozilla.javascript.internal.JavaScriptException: [object Error] (<Unknown source>#31) in <Unknown source> at line number 31
at com.sun.script.javascript.RhinoScriptEngine.eval(RhinoScriptEngine.java:153)
at com.sun.script.javascript.RhinoScriptEngine.eval(RhinoScriptEngine.java:167)
at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:247)
у меня hello.js
в верхней части пути к классам Java. Вот где у меня require.js
как хорошо. Я пытался двигаться!--7--> везде, где я мог бы подумать, что это может пойти, включая корень моего жесткого диска, корень моего каталога пользователя, каталог, из которого я запускаю свое Java-приложение и т. д. Ничего не работает.
я посмотрел на CommonJS спек (http://wiki.commonjs.org/wiki/Modules/1.0) и он говорит, что топ-уровня Идс (как hello
) разрешаются из "корня пространства имен концептуального модуля", тогда как относительные идентификаторы (например,./hello
) разрешены против вызывающего модуля. Я не уверен, где находится любая из этих исходных линий, и я подозреваю, что это проблема.
какие предложения? Могу ли я даже использовать require.JS из Рино?
EDIT: думая, что мне нужно настроить среду в соответствии с предложением Pointy в комментарии ниже, я попытался оценить r.js
как хорошо. (Я попытался оценить после оценки require.js
, а потом снова перед require.js
.) В любом случае я получаю сообщение об ошибке:
Caused by: javax.script.ScriptException: sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "arguments" is not defined. (<Unknown source>#19) in <Unknown source> at line number 19
at com.sun.script.javascript.RhinoScriptEngine.eval(RhinoScriptEngine.java:153)
at com.sun.script.javascript.RhinoScriptEngine.eval(RhinoScriptEngine.java:167)
at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:247)
"аргументы", по-видимому, являются переменной в r.js
. Я думаю, что это для аргументов командной строки, поэтому я не думаю r.js
- это правильный путь для того, что я пытаюсь сделать. Хотя не уверен.
1 ответов
требуют.js хорошо работает с rhino. Недавно я использовал его в одном проекте.
- вы должны обязательно использовать Р.Яш (не требуют.js), модифицированная версия require.JS для носорога.
- вы должны продлить
ScritableObject
класс для реализацииload
и