1、添加 代码生成器
公司要求要生成C语言,这个挺坑的,因为C语言我记得是要编译,然后才能运行,我就算生成了代码,但是怎么编译是个大问题,因为目前不知道怎么做,所以还是先把代码生成器做出来,看了一些文章大概知道了流程
(1)把 blockly 的 generators 文件夹直接 copy 到 scratch-blocks 下,在 scratch-blocks/build 文件夹下增加 gen_generators.js 文件,添加一行代码即可
(2)修改 build.py,在 build.py 中增加 gen_generator 方法并在 run 方法中调用,将 generators 相关文件打包进去,这时候已经修改了 scrtach-blocks,所以需要使用 npm run prepublish 命令编译,编译完就会生成对应的 scratch-blocks 中会出现 language + "_compressed.js"文件
(3)在 scratch-gui 中引用,找到 scratch-gui/src/lib/blocks.js,然后引入文件,
(4)最后进行调用,找到 scratch-gui/src/containers/blocks.jsx,增加 workspaceToCode 方法,并在 binAll 中绑定,最后对 this.workspace 增加监听事件,监听积木块变化,可以利用 redux 把生成的代码存起来全局可用
到这里发现有一些报错,感觉后面可能还会遇到就先总结出来了