我们正在使用简单的javascript引擎评估 noflo 在嵌入式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 Universe之外的隔离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,但这总是会返回&#34;服务器错误&#34;。
祝你好运
Gunther Strube
答案 0 :(得分:1)
NoFlo-Gnome项目包含noflo-runtime-base存储库(https://github.com/noflo/noflo-runtime-base)的浏览器构建,它本身嵌入了NoFlo。
您可能需要添加一些别名,因为浏览器构建不一定适合您的引擎:https://github.com/noflo/noflo-gnome/blob/master/src/noflo.js#L89
答案 1 :(得分:0)
noflo-gnome在GJS中运行NoFlo,它基于Spidermonkey和GLib / GObject。
它具有一些最小的require()兼容性,允许拉入NoFlo。在./src/libs中有一个已检入的noflo(+ noflo-runtime-base)版本,但我没有立即找到它是如何创建的。
答案 2 :(得分:0)
如果您正在考虑使用浏览器版本来加快启动时间,您可能还需要查看:https://github.com/djdeath/noflo-iot 在某些时候,我试图在I / O非常慢的板上运行NoFlo。事实证明,单个文件压缩的NoFlo构建(包括所有需要的组件)明显更快。