ClientWorker icon indicating copy to clipboard operation
ClientWorker copied to clipboard

现代化与工程化

Open BeiyanYunyi opened this issue 1 year ago • 0 comments

文件变化:

  1. 将几乎所有 js 文件改写成了 ts。
  2. 改写成 ts 后,修复了所有可能存在的类型错误。(一些属性名存在变化)
  3. 从 json schema 获取配置类型,发现 schema 的类型与代码中的一些类型不同步,因此改写了部分 schema。
  4. 删除了不必要的 gitignore 项,并删除了对于 lock 的 ignore,它对于项目的可再现性是至关重要的,不应当被 ignore。
  5. 删除了 static 目录下的 config.schema.json,将它的内容挪到 types/configType.ts,使用 json-schema-to-ts 提供类型定义,并在每次构建时生成到 dist/config.schema.json

开发流程变化

  1. pnpm 取代 npm,并安排 workspaces,在根目录下运行 pnpm i,将同时为 doc 目录安装依赖。(构建命令变为 pnpm build
  2. esbuild 取代 webpack,打包速度提升上百倍。

展望

在使用 TypeScript 改写以后,我们将能更好地进行二次开发和贡献。我将:

  1. 把各引擎分离到自己的文件中。
  2. 继续提升代码可读性和表现力。
  3. viteastro 开发一个插件。

BeiyanYunyi avatar Nov 20 '22 14:11 BeiyanYunyi