创建第一个Scratch3.0 Extension失败

将png改成URL的写法后Cmder不报错了,但是点击插件转跳后网页端这边还是报错且不显示tello的block:


根据报错信息并没有找到这个regeneratorRuntime变量呀,奇怪。

1赞

百度说是浏览器不支持asnyc关键字,然后按照这里的方法:一:https://blog.csdn.net/youhebuke225/article/details/106524984?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.control
二: https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-runtime
使用命令安装:npm install --save-dev @babel/plugin-transform-runtime
然后发现安装过程中会将node_modules里面的文件删除,导致gui跟vm都报错跑不起来了。

1赞

看起来是async的问题,这块可能得配置下nodejs环境

1赞

配置了,一直不行。安装配置过程貌似会删掉工程里面的文件,最后导致编译不过。现在先临时不使用async关键字也可以打开,但不知道会不会有啥影响:

1赞

偶然看到这个办法:https://github.com/mortend/transpiler/commit/c46c45f7ab35e8437c89937ea1c65a91f51d2750
于是将这个导入:require("…/…/…/node_modules/regenerator-runtime/runtime"); 加到tello的index.js的开头就可以了,不会提示这个错误了:ReferenceError: regeneratorRuntime is not defined.


1赞

看了下 应该没啥问题

1赞

好的,以上的操作只是scratch端的编程,要对接一个硬件进来:
第一步:编写scratch端程序,block、插件的编写等
改动的地方:
1.gui的配置:scratch-gui/src/lib/libraries/extensions/index.js
2.VM的配置:scratch-vm/src/extensions/scratch_xxx/index.js
3.VM manager文件配置:scratch-vm/src/extension-support/extension-manager.js

第二步:编写硬件的python程序
py文件存放目录:CodeLab-Adapter-3_7_4-win\src\app\codelab_adapter\extensions

目前准备了解这部分的调试,有个问题是这个目前我知道的打开的jupyterLab调试py是跟CodeLab-Adapter编译好的创作版本通信的:


那我该如何使得jupyterLab调试的py跟本地我自己编译的创作平台通信呢?

目前对Adapter调试新的硬件不是很懂,还是说也需要有Adapter的源码工程,然后在本地编译运行Adapter即可跟本地创作平台联合调试?

1赞

Adapter可以跟本地开发环境的scratch通信,只需要为本地Scratch引入EIM插件即可

1赞

已经引入了的,然后下一步不知道该怎么设置了:

1赞

这样的话 说明是ok的

连接指示状态和插件无关,是GUI上的提示功能,不影响使用

1赞

本地scratch运行了,且Adapter也运行了。但这个EIM里面这里却显示Adapter没开启:

点击eim插件进来后网页还报了个错误:

1赞

然后百度了下有类似的问题:https://stackoverflow.com/questions/64754301/uncaught-typeerror-cannot-read-property-sid-of-undefined。估计不兼容socket.io-client 最新的3.0.3版本,然后降到2.3.1版本就不报错了:
解决办法:scratch-vm目录下运行命令: yarn add socket.io-client@2.3.1

1赞

太棒了

1赞

我更新到项目readme里了: https://github.com/CodeLabClub/scratch3_eim

1赞

OK

1赞