首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >让RingoJS在node_modules目录中查找所需的模块

让RingoJS在node_modules目录中查找所需的模块
EN

Stack Overflow用户
提问于 2016-06-27 22:20:24
回答 1查看 84关注 0票数 0

我正在尝试将一个服务从nodejs迁移到ringojs。我在使用require()时遇到了一个问题。例如,考虑以下内容:

代码语言:javascript
复制
var restify = require('restify');

RingoJS找不到restify模块,因为它不知道要在node_modules目录中查找。我可以将node_modules添加到RingoJS使用的路径中(我也这样做了),但是当restify调用require()时,这并没有什么帮助,因为模块嵌套在目录树中。

有没有办法让RingoJS在node_modules目录中查找所需的模块?

EN

回答 1

Stack Overflow用户

发布于 2016-06-27 22:48:37

您可以使用-m选项将其他目录添加到Ringo的模块搜索路径中。示例:使用npm install underscore通过npm安装underscore,并使用ringo -m ./node_modules yourscript.js启动ringo。Undersocre将可用,并且可以如预期所需:

代码语言:javascript
复制
    const _ = require("underscore");
    // logs --> "3,6,9"
    console.log(_.map([1, 2, 3], function(num) {
       return num * 3;
    }));

你的具体问题似乎是restify只与Node.js兼容,而不是与其他类似CommonJS的平台兼容。它可能有一些与Ringo兼容的子模块,但到目前为止我还没有找到。Ringo的package.json与Node/npm的package.json不是1:1兼容的。如果restify在包描述符中使用了一些特定于Node的内容,Ringo将无法加载这些资源。

Ringo通过其各种标准化模块仍然非常接近CommonJS背后的想法,而Node很久以前就离开了这条道路。您可以在Node中找到CommonJS模块(使用require()加载模块),但没有找到CommonJS试图为服务器端JavaScript建立的其他API。

此外,Ringo不是围绕回调/事件驱动的非阻塞I/O构建的。您可以在Ringo上使用非阻塞I/O,但您也可以坚持使用阻塞I/O。这与Node.js不同,在Ringo中,您必须以非阻塞的方式进行开发,并且所有内容都经过优化,以便使用事件驱动模型顺利运行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38056371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档