以下结构确保软件包在我们的 monorepo/Nx 工作流程中最佳地工作。
./package.json
- 所有 TanStack 项目都有 "type": "module",用于将 .js 文件的默认解析设置为 ESM; 这对构建 CJS 没有任何影响
- 拥有 "exports" 字段也至关重要
- 出于遗留原因,您还应该包含 "main"、"module" 和 "types" 字段
- 所有软件包都具有以下由 Nx 缓存的脚本:"test:eslint"、"test:types"、"test:lib"、"build"、"test:build"
./tsconfig.json
- 扩展根级别的 tsconfig(例如 "extends": "../../tsconfig.json")
- 在此处添加任何特定于框架的选项和包含的文件
./vite.config.ts
./src
- 此文件夹应仅包含构建并交付给用户的代码
- 测试不应放在此文件夹中,因为它们会使交付的代码膨胀,并可能无意中使 Nx 缓存失效
./tests
- 此文件夹应包含所有测试文件
- 它还应包含该框架所需的任何测试设置文件