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