ClientWorker
ClientWorker copied to clipboard
现代化与工程化
文件变化:
- 将几乎所有 js 文件改写成了 ts。
- 改写成 ts 后,修复了所有可能存在的类型错误。(一些属性名存在变化)
- 从 json schema 获取配置类型,发现 schema 的类型与代码中的一些类型不同步,因此改写了部分 schema。
- 删除了不必要的 gitignore 项,并删除了对于 lock 的 ignore,它对于项目的可再现性是至关重要的,不应当被 ignore。
- 删除了 static 目录下的
config.schema.json
,将它的内容挪到types/configType.ts
,使用json-schema-to-ts
提供类型定义,并在每次构建时生成到dist/config.schema.json
。
开发流程变化
- 用 pnpm 取代 npm,并安排 workspaces,在根目录下运行
pnpm i
,将同时为doc
目录安装依赖。(构建命令变为pnpm build
) - 用 esbuild 取代 webpack,打包速度提升上百倍。
展望
在使用 TypeScript 改写以后,我们将能更好地进行二次开发和贡献。我将:
- 把各引擎分离到自己的文件中。
- 继续提升代码可读性和表现力。
- 为
vite
或astro
开发一个插件。