javascript - Blockly 在 Node.js 上

标签 javascript node.js server blockly

我想在 Node.js 上 block 运行,让代码直接在服务器上执行(包括逐 block 执行),而不需要先保存 XML 然后在后台运行它;我尝试了 npm 上的一些模块,但没有一个能满足我的要求,或者它只是运行预先生成的 XML。

有什么想法吗?

最佳答案

以下是在服务器上执行的步骤:

1) 安装node.js的xmldom模块:

$ npm install xmldom

2) 克隆谷歌的 Closure 库 ( github )。确保克隆的目录名为“closure-library”,并且与您的 block 项目位于同一目录级别,如下所示:( image link )

enter image description here

3) 在您的 blockly 项目文件夹中添加一个 javascript generate.js。注意这里我使用blockly xml来生成python代码。您需要根据您使用的发电机类型调整第 7-10 行。

global.DOMParser = require('xmldom').DOMParser;

global.Blockly = require('./blockly_uncompressed.js');
require('./blocks/math.js');
require('./blocks/text.js');
require('./blocks/lists.js');
require('./generators/python.js');
require('./generators/python/math.js');
require('./generators/python/text.js');
require('./generators/python/lists.js');
require('./msg/messages.js');

var fs = require('fs');

var xmlText = process.argv[2];
try {
    var xml = Blockly.Xml.textToDom(xmlText);
    // Create a headless workspace.
    var workspace = new Blockly.Workspace();
    Blockly.Xml.domToWorkspace(workspace, xml);
    var code = Blockly.Python.workspaceToCode(workspace);
    console.log(code);
} catch (e) {
    console.log(e);
}

4) 最后,使用预先生成的 XML 字符串在 generate.js 上运行 node.js:

$ node generate.js '<xml>...</xml>'

引用:

1) Headless Blockly

2) Blockly code generation on the server side

3) Building Blockly

关于javascript - Blockly 在 Node.js 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39385916/

相关文章:

android - 为每隔几秒发出一次请求的android应用程序创建服务器端

python - 让 Pynng 和 socket 相互对话

javascript - 你如何调试 Javascript 应用程序?

javascript - react 错误index.js :1452 Warning: Each child in an array or iterator should have a unique "key" prop

javascript - 使用 jQuery、JSON 和 AJAX 填充下拉列表

node.js - 在 Mongoose 中,我如何按日期排序? (node.js)

node.js - 在 azure 上部署应用程序期间,Visual Studio 总是卡住

javascript - 如何使用 jQuery 获取嵌套 div 的内容

node.js - 如何在每天凌晨 12 点设置 Node 时间表

linux - 无法在本地网络服务器上注册 git runner