본문으로 건너뛰기

[!WARNING] 지원되는 번들러를 사용하지 않는 경우에만 TanStack Router CLI를 사용해야 합니다. CLI는 라우트 트리 파일 생성만 지원하며 다른 기능은 제공하지 않습니다.

TanStack Router CLI로 파일 기반 라우팅을 사용하려면 @tanstack/router-cli 패키지를 설치해야 합니다.

<!-- ::start:tabs variant="package-manager" mode="dev-install" -->

react: @tanstack/router-cli solid: @tanstack/router-cli

<!-- ::end:tabs -->

설치한 후 package.json의 스크립트를 수정해 CLI가 파일을 watch하고 generate하도록 해야 합니다.

{
"scripts": {
"generate-routes": "tsr generate",
"watch-routes": "tsr watch",
"build": "npm run generate-routes && ...",
"dev": "npm run watch-routes && ..."
}
}

<!-- ::start:framework -->

Solid

TypeScript를 사용하는 경우 tsconfig.json에 다음 옵션도 추가해야 합니다.

{
"compilerOptions": {
"jsx": "preserve",
"jsxImportSource": "solid-js"
}
}

이제 TanStack Router에서 파일 기반 라우팅을 사용할 준비가 완료되었습니다.

<!-- ::end:framework -->

생성된 라우트 트리 파일을 _ignore_하는 것을 잊지 않아야 합니다. 자세한 내용은 생성된 라우트 트리 파일 무시 섹션을 참고합니다.

CLI를 설치하면 tsr 명령을 통해 다음 명령을 사용할 수 있습니다.

generate 명령 사용​

제공된 설정에 따라 프로젝트의 라우트를 생성합니다.

tsr generate

watch 명령 사용​

지정된 디렉터리를 계속 감시하고 필요할 때 라우트를 다시 생성합니다.

사용법:

tsr watch

파일 기반 라우팅이 활성화된 상태에서 개발 모드로 애플리케이션을 시작하면 TanStack Router는 설정된 routesDirectory를 감시하고 파일이 추가, 제거 또는 변경될 때마다 라우트 트리를 생성합니다.

생성된 라우트 트리 파일 무시​

프로젝트에서 린터 및/또는 포매터를 사용하도록 설정한 경우 생성된 라우트 트리 파일을 무시할 수 있습니다. 이 파일은 TanStack Router가 관리하므로 린터나 포매터가 변경해서는 안 됩니다.

생성된 라우트 트리 파일을 무시하는 데 도움이 되는 리소스는 다음과 같습니다.

[!WARNING] VSCode를 사용하는 경우 라우트 이름을 바꾼 후 라우트 트리 파일이 예기치 않게 오류와 함께 열릴 수 있습니다.

VSCode 설정에서 파일을 읽기 전용으로 표시하면 이를 방지할 수 있습니다. 다음 설정을 사용해 검색 결과와 파일 감시 대상에서도 제외하는 것을 권장합니다.

{
"files.readonlyInclude": {
"**/routeTree.gen.ts": true
},
"files.watcherExclude": {
"**/routeTree.gen.ts": true
},
"search.exclude": {
"**/routeTree.gen.ts": true
}
}

프로젝트 루트에 .vscode/settings.json 파일을 생성하면 이 설정을 사용자 수준에서 사용하거나 단일 워크스페이스에만 적용할 수 있습니다.

설정​

파일 기반 라우팅에 TanStack Router CLI를 사용하면 대부분의 프로젝트에서 작동하는 합리적인 기본값이 제공됩니다.

<!-- ::start:framework -->

React

{
"routesDirectory": "./src/routes",
"generatedRouteTree": "./src/routeTree.gen.ts",
"routeFileIgnorePrefix": "-",
"quoteStyle": "single",
"target": "react"
}

Solid

{
"routesDirectory": "./src/routes",
"generatedRouteTree": "./src/routeTree.gen.ts",
"routeFileIgnorePrefix": "-",
"quoteStyle": "single",
"target": "solid"
}

<!-- ::end:framework -->

이 기본값이 프로젝트에 적합하다면 별도로 설정할 필요가 없습니다. 그러나 설정을 사용자 지정해야 한다면 프로젝트 디렉터리 루트에 tsr.config.json 파일을 생성하면 됩니다.

사용 가능한 모든 설정 옵션은 파일 기반 라우팅 API 레퍼런스에서 확인할 수 있습니다.