包结构

以下结构确保包能够与我们的 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

  • 此文件夹应包含所有测试文件
  • 它还应包含该框架所需的任何测试设置文件