时隔这么久,终于有迎来一篇博客。
最近在尝试做一个带sqlite3数据库的本地electron应用。在查找数据库解决方案过程中发现了typeorm这一个Object-Relational Mapping库。
typeorm依赖于ts的类型推断和装饰器这一语法糖。可以说typeorm的易用性和typescript高度绑定。
使用过程中发现,经过vite编译的Entity都会丢失类型。
这个问题处理了一整天了,最终发现是vite的渲染模式存在问题,默认esbuild,不支持装饰器,需改成swc。需要在vite配置文件中作如下配置:
import { swcPlugin } from 'electron-vite'
plugins: [externalizeDepsPlugin(), swcPlugin()],
