Получение RingoJS для поиска необходимых модулей в каталоге node_modules
Я пытаюсь перенести сервис из nodejs в ringojs. Я столкнулся с проблемой с использованием require()
, Например, рассмотрим это:
var restify = require('restify');
RingoJS не может найти модуль restify, потому что он не знает, чтобы посмотреть в node_modules
каталог. Я могу добавить node_modules
на путь, который использует RingoJS (и я это сделал), но это не помогает, когда переадресовывает звонки require()
потому что модули вложены в дерево каталогов.
Есть ли способ заставить RingoJS искать нужные модули в каталоге node_modules?
1 ответ
Вы можете добавить дополнительные каталоги в путь поиска модуля Ringo с помощью -m
вариант. Пример: установка underscore
через нпм с npm install underscore
и начать ринго с 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, но я пока не нашел ни одного. Ринго package.json
не совместим 1:1 с узлами / npm package.json
, Если restify использует некоторые специфичные для Node вещи в дескрипторе пакета, Ringo не сможет загрузить эти ресурсы.
Ринго все еще очень близок к идеям CommonJS с его различными стандартизированными модулями, в то время как Node давно покинул этот путь. Вы найдете модули CommonJS (которые используют require()
загрузить модуль) в Node, но не другие API, которые пытались установить CommonJS для серверного JavaScript.
Кроме того, Ringo не построен на обратных вызовах / управляемых событиями неблокирующих ввода-вывода. Вы можете использовать неблокирующий ввод / вывод в Ringo, но вы также можете придерживаться блокирующего ввода / вывода. Это отличается от Node.js, где вы должны разрабатывать неблокирующим образом, и все оптимизировано для гладкой работы с моделью, управляемой событиями.