2013-03-14 51 views
4

我只是想实现反应的扩展/ RxJS Implementatation到Node.js的

https://github.com/Reactive-Extensions/RxJS

我的节点项目。

当然,有npm包可用,但我看到它更少,更少的模块,并只使用最小。文件,所以我想使用git源代码中的rxjs。

我下载RxJS主机和整个文件复制迪尔下../myProject/lib/rx/

我看到那些文件中

rx.node.js

var Rx = require('./rx'); 
require('./rx.aggregates'); 
require('./rx.binding'); 
require('./rx.coincidence'); 
require('./rx.experimental'); 
require('./rx.joinpatterns'); 
require('./rx.testing'); 
require('./rx.time'); 
module.exports = Rx; 

所以,我app.js代码是这样的

var rx = require("./lib/rx/rx.node.js") 

function test() 
{ 
    var as = new rx.AsyncSubject() 
    setTimeout(function() 
    { 
     as.onNext("works!") 
     as.onCompleted() 
    }, 500) 
    return as 
} 

var a = test().subscribe(function (result) 
{ 
    console.log("Got result: " + result) 
}) 

这给出了一个错误如下,

.../rx/lib/rx/rx.binding.js:173 
    var BehaviorSubject = Rx.BehaviorSubject = (function (_super) { 
         ^
ReferenceError: Rx is not defined 
    at .../rx/lib/rx/rx.binding.js:173:27 
    at Observable (.../rx/lib/rx/rx.binding.js:14:26) 
    at Object.<anonymous> (.../rx/lib/rx/rx.binding.js:18:2) 
    at Module._compile (module.js:449:26) 
    at Object.Module._extensions..js (module.js:467:10) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:312:12) 
    at Module.require (module.js:362:17) 
    at require (module.js:378:17) 
    at Object.<anonymous> (.../rx/lib/rx/rx.node.js:3:1) 

Process finished with exit code 1 

有什么不对?


如果我修改 rx.node.js

var Rx = require('./rx'); 
module.exports = Rx; 

的代码按预期工作,所以很明显需要 - 子模块节并不顺利。


谢谢。

回答

5

固定为最新版本的,我和this commit

删除相关不良构建NPM已经进行了相应的更新,删除了2.1.1和用非破碎的版本替换。

+0

谢谢Mattew快速回复! – 2013-03-30 13:39:42

0

这看起来像是你正在运行的构建的一个问题,我假设它是2.1.1。我有同样的问题,下面的npm命令为我解决了这个问题。

npm remove rx 
npm install [email protected] 

编辑:我看到你正在使用大师。对困惑感到抱歉。此解决方案可能适用于运行2.1.1的其他人。

+0

KoboldAtWork,谢谢,它已经正式修复。 – 2013-03-30 13:40:16

-1

我认为你可以做到这一点。如果这个命令:

$ which npm 
/usr/local/bin/npm 

你可以这样做:

$ npm remove rx 
$ npm install -g rx 

如果你没有必要对什么“的新公共管理”,它可你一定要删除节点与this issue(最好的答案)和重新安装与BREW(和MacOS)或包管理器:

$ brew update 
$ brew uninstall node 
$ brew install node 

,它可以,你必须使用此:

$ brew postinstall node 

根据this issue的讨论。