LeviLamina icon indicating copy to clipboard operation
LeviLamina copied to clipboard

Typescript support

Open yqs112358 opened this issue 1 year ago • 6 comments

基于NodeJs可以提供对TS的支持 目前有两种方案:

  1. 使用ts-node。优点是实时转译,缺点是在embedding环境下不知如何运行,可能需要手写一些对接代码(类似npm?)
  2. 使用tsc。优点是简单方便,embedding环境也可以无脑处理(照抄npm方式加载即可),缺点是需要在每次插件加载前就执行转译,会生成一些额外的js文件导致占用空间增大

有对接需求的需要尽快对接

ts环境搭建参考:https://juejin.cn/post/6844904022365700103

yqs112358 avatar Aug 01 '22 10:08 yqs112358

要不让开发者手动编译算了

lgc2333 avatar Aug 15 '22 20:08 lgc2333

我建议是编译成js

RimuruChan avatar Sep 12 '22 13:09 RimuruChan

我建议是编译成js

本来就是编译到js,node不支持直接运行ts 这边todo是提供ts编译编译工具(tsc等)使插件包中的ts代码在加载插件时自动编译并加载

yqs112358 avatar Sep 13 '22 01:09 yqs112358

@yqs112358 我的建议是不需要提供现场构建工具,正如C++插件没必要现场构建。

futrime avatar Sep 13 '22 01:09 futrime

@yqs112358 我的建议是不需要提供现场构建工具,正如C++插件没必要现场构建。

ts和cpp不一样,ts编译器很小,而且运行很快,很多提供ts支持的平台都直接内置了ts翻译器(见bdsx) ts只是在js基础上增加了少量标注,翻译过程非常简单,只是去除标注然后转换为标准js的过程,翻译的文件是一一对应的 不像cpp源码有一大堆源码,先要汇编成二进制机器码再链接成可执行文件,ts只是纯粹的翻译

yqs112358 avatar Sep 13 '22 01:09 yqs112358

@yqs112358 我的建议是不需要提供现场构建工具,正如C++插件没必要现场构建。

ts和cpp不一样,ts编译器很小,而且运行很快,很多提供ts支持的平台都直接内置了ts翻译器(见bdsx) ts只是在js基础上增加了少量标注,翻译过程非常简单,只是去除标注然后转换为标准js的过程,翻译的文件是一一对应的 不像cpp源码有一大堆源码,先要汇编成二进制机器码再链接成可执行文件,ts只是纯粹的翻译

提前编译成单文件js更便于分发

RimuruChan avatar Sep 13 '22 02:09 RimuruChan