注意事项
插件语法
尽量使用ES8以下的语法,不然有可能会有语法错误。async/await用起来基本没什么问题,但是下面这种异步箭头函数可能不支持:
const f = async () => {
}
如果你想用ES10的?.或者??操作符的话,你可以用babel-cli转成es5,基本上就没什么问题了。
性能相关
插件是一开始就通过Function的形式hook进了js引擎中,也就是插件和app的代码运行在同一个环境下,不会有需要序列化/反序列化之类的可能比较耗时的问题,插件方法的返回值比较大也无所谓(虽然可能后续处理会更耗时)。
以及尽量避免频繁请求、请求耗时过长的情况。在app中对每次请求的最长时间做了限制(2000ms)。
安全相关
由于上文所说,插件使用的内置npm包也和app是共用的。
不要试图修改npm包内的参数,否则app可能会出现异常。这也会有潜在的安全问题,使用者也要注意大概看下插件中有没有恶意请求之类的,后续可能会想办法解决掉这个安全问题。