Remix中助手代码与TypeScript类型的非路由存放位置咨询
在Remix中存放非路由代码的正确方式
针对你提到的助手函数和类型文件的存放问题,有两种靠谱的方案:
- 方案一:在app目录内使用下划线前缀命名
Remix会自动忽略以下划线_开头的文件夹和文件,不会将它们识别为路由。所以你可以直接在app目录下创建_helpers和_types文件夹,分别存放TypeScript助手函数和类型定义。示例结构:
app/ ├── _helpers/ │ ├── formatDate.ts │ └── apiClient.ts ├── _types/ │ ├── user.ts │ └── post.ts └── routes/ └── index.tsx
这种方式的好处是相关代码和app逻辑放在一起,导入路径更短,比如import { formatDate } from "~/helpers/formatDate"(Remix默认配置了~/指向app目录)。
- 方案二:将代码放在app目录外
你也可以在项目根目录下创建独立的文件夹,比如lib(放助手函数)和types(放类型定义),示例结构:
your-project/ ├── app/ │ └── routes/ │ └── index.tsx ├── lib/ │ ├── formatDate.ts │ └── apiClient.ts └── types/ ├── user.ts └── post.ts
导入时可以配置tsconfig.json里的paths简化路径,或者直接用相对路径,比如import { formatDate } from "../lib/formatDate"。这种方式适合把通用工具代码和业务路由代码彻底分离,方便跨项目复用。
不管选哪种方案,只要避免让文件符合Remix的路由命名规则(比如不要用$这类路由参数前缀,不要直接放在routes目录下),就不会被当成路由暴露出去。
内容的提问来源于stack exchange,提问作者Vippy
相关产品推荐
相关产品推荐

