Mit der Option -m
können Sie dem Modulsuchpfad von Ringo zusätzliche Verzeichnisse hinzufügen. Beispiel: Installieren Sie underscore
über Npm mit npm install underscore
und starten Sie Ringo mit ringo -m ./node_modules yourscript.js
. Undersocre verfügbar sein und kann wie erwartet erforderlich:
const _ = require("underscore");
// logs --> "3,6,9"
console.log(_.map([1, 2, 3], function(num) {
return num * 3;
}));
Ihr spezifisches Problem scheint nur, dass restify ist zu sein kompatibel mit Node.js und nicht mit anderen Commonjs-ähnlichen Plattformen. Es könnte einige Untermodule haben, die mit Ringo kompatibel sind, aber bisher habe ich noch keine gefunden. Ringo's package.json
ist nicht 1: 1 kompatibel mit package.json
des Knotens/npm. Wenn restify einige knotenspezifische Elemente im Paketdeskriptor verwendet, kann Ringo diese Ressourcen nicht laden.
Ringo ist immer noch sehr nah an den Ideen hinter CommonJS mit seinen verschiedenen standardisierten Modulen, während Node diesen Weg vor langer Zeit verlassen hat. Sie finden CommonJS-Module (die require()
verwenden, um ein Modul zu laden) in Node, aber nicht die verschiedenen anderen APIs, die CommonJS für serverseitiges JavaScript einrichten wollte.
Auch Ringo ist nicht um Callbacks/eine ereignisgesteuerte nicht blockierende I/O herum aufgebaut. Sie können nicht blockierende E/A auf Ringo verwenden, aber Sie können auch bei blockierenden E/A bleiben. Dies ist bei Node.js anders, wo Sie auf nicht blockierende Weise entwickeln müssen und alles darauf optimiert ist, mit dem ereignisgesteuerten Modell reibungslos zu arbeiten.