0

我们正在评估noflo以使用简单的 javascript 引擎在嵌入式 linux 机器上执行,作为解释器(无 JIT)。在我们的例子中,Node.js 引擎(带有嵌入式 V8 引擎)可能过于占用资源。

直接的问题是如何在其中运行 noflo 运行时。查看 GitHub 存储库 ( https://github.com/noflo/noflo ) 并使用 grunt,我们使用grunt build:browser为浏览器生成了 noflo 。

作为实际尝试运行生成的browser/noflo.js文件的简单示例,我将 d8 shell(V8 引擎 shell)用于 Node.js 世界之外的隔离 Javascript 引擎,并将以下代码附加到生成的 noflo.js文件:

var fbpData = "<some FBP language connections>";

var noflo = require('noflo');
noflo.graph.loadFbp(fbpData, function(graph) {
    print("Graph loaded");
});

然后, d8 noflo.js

在 Linux shell 上,它报告

rtm.js:9559: TypeError: undefined is not a function
noflo.graph.loadFbp(fbpData, function(graph) {
            ^
TypeError: undefined is not a function
at rtm.js:9559:13

在没有进一步了解的情况下,让我相信 noflo.js 并不是自包含所有核心 noflo 运行时功能。

这里缺少什么必要的步骤,让我在一个独立的 JS 引擎中运行 noflo 库(V8 只是一个例子 - 它可以是任何符合 ECMA V5 的引擎)

noflo 项目网站上的所有代码示例都是为 Node.js 量身定制的...

PS:我尝试从http://noflojs.org/download/构建基于浏览器的noflo 作为替代方法,但是这总是返回“服务器错误”。

此致

冈瑟·斯特鲁布

4

3 回答 3

1

NoFlo-Gnome 项目包含本身嵌入 NoFlo的 noflo-runtime-base 存储库 ( https://github.com/noflo/noflo-runtime-base ) 的浏览器构建。

您可能需要添加一些别名,因为浏览器构建不一定适合您的引擎:https ://github.com/noflo/noflo-gnome/blob/master/src/noflo.js#L89

于 2014-09-28T08:27:14.157 回答
0

如果您正在考虑使用浏览器构建来加快启动时间,您可能还想查看:https : //github.com/djdeath/noflo-iot慢 I/O。事实证明,NoFlo 的单个文件压缩构建(包括所有需要的组件)明显更快。

于 2014-09-28T08:32:07.173 回答
0

noflo-gnome在GJS中运行 NoFlo ,它基于 Spidermonkey 和 GLib/GObject。

它有一些最小的 require() 兼容性,允许引入 NoFlo。在 ./src/libs 中有一个已签入的 noflo (+ noflo-runtime-base) 构建,但我没有立即找到它是如何创建的。

于 2014-09-28T01:50:04.940 回答