我们正在评估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 作为替代方法,但是这总是返回“服务器错误”。
此致
冈瑟·斯特鲁布