Вы можете добавить дополнительные каталоги в путь поиска модуля Ringo с опцией -m
. Пример: установите underscore
через npm с npm install underscore
и запустите ringo с ringo -m ./node_modules yourscript.js
. Undersocre будет доступен и может потребоваться, как ожидалось:
const _ = require("underscore");
// logs --> "3,6,9"
console.log(_.map([1, 2, 3], function(num) {
return num * 3;
}));
Ваша конкретная проблема, кажется, что restify является только совместим с Node.js, а не с другими CommonJS-подобных платформ. У него могут быть некоторые подмодули, совместимые с Ringo, но я пока не нашел их. Ringo's package.json
не 1: 1 совместим с Node's/npm's package.json
. Если в дескрипторе пакета restify использует некоторые специфичные для узла элементы, Ringo не может загрузить эти ресурсы.
Ringo по-прежнему очень близок к идеям, стоящим за CommonJS, с его различными стандартизованными модулями, в то время как узел давно покинул этот путь. Вы находите модули CommonJS (которые используют require()
для загрузки модуля) в узле, но не другие API-интерфейсы CommonJS пытались установить для серверного JavaScript.
Кроме того, Ringo не построен вокруг обратных вызовов/неблокирующего ввода-вывода, управляемого событиями. Вы можете использовать неблокирующий ввод-вывод на Ringo, но вы также можете придерживаться блокировки ввода-вывода. Это отличается от Node.js, где вам нужно разрабатывать неблокируемым способом, и все оптимизировано для бесперебойной работы с управляемой событиями моделью.