以下结构确保包能够与我们的 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
- 此文件夹应包含所有测试文件
- 它还应包含该框架所需的任何测试设置文件