gen:route (next page)
nextjs 프레임워크의 page 라우터 버젼에서 사용가능합니다.
pages 폴더를 조회하여 route 경로를 포함한 객체를 생성합니다.
개발자의 타이핑으로 경로를 가져오는것이 아니라 객체의 key 값으로 가져옴으로써 경로를 가져오는데 편의성과 안정성을 제공합니다.
pages
├── index.tsx
├── auth
│ └── index.tsx
├── login
│ └── index.tsx
└── social
└── callback.tsx
위의 폴더 구조의 이미지는 아래의 객체로 변환됩니다.
export const ROUTES = {
AUTH_MAIN: "/auth",
MAIN: "/",
LOGIN_MAIN: "/login",
SOCIAL_CALLBACK: "/social/callback",
};
Installation
- npm
- yarn
- pnpm
npm i -D @toktokhan-dev/cli @toktokhan-dev/cli-plugin-gen-route
yarn add -D @toktokhan-dev/cli @toktokhan-dev/cli-plugin-gen-route
pnpm add -D @toktokhan-dev/cli @toktokhan-dev/cli-plugin-gen-route
Run Script
command 를 별도로 입력하지 않으면 대화형으로 실행되어 등록되어있는 스크립트 중 선택하여 사용이 가능합니다.
npx tokript
command 를 입력하면 해당 스크립트가 바로 실행됩니다.
npx tokript gen:route
팁
자주 사용될 수 있는 스크립트는 협업간 편의성을 위해 package.json
에 등록하는걸 권장 드립니다.
package.json
{
...
"scripts": {
"gen:route": "tokript gen:route",
}
}
- yarn
- npm
- pnpm
yarn run gen:route
npm run gen:route
pnpm run gen:route
Configuration
tok-cli.config.ts
에서 config 정의가 가능합니다.
tokript.config.ts
import { genRoute } from '@toktokhan-dev/cli-plugin-gen-route'
const config: RootConfig<{
plugins: [typeof genRoute]
}> = {
plugins: [genRoute],
'gen:route': {
...
},
}
export default config
input
- Required:
false
- Type:
string
- Default:
src/pages
- Cli Option:
--input
-i
config
tok-cli.config.ts
{
'gen:route': {
input: 'src/pages',
...
},
}
cli
tokript gen:route --input "src/pages"
output
- Required:
false
- Type:
string
- Default:
src/generated/path/routes.ts
- Cli Option:
--output
-o
config
tok-cli.config.ts
{
'gen:route': {
output: 'src/generated/path/routes.ts',
...
},
}
cli
tokript gen:route --output "src/generated/path/routes.ts"
displayName
- Required:
false
- Type:
string
- Default:
ROUTES
- Cli Option:
--displayName
-d
config
tok-cli.config.ts
{
'gen:route': {
displayName: 'ROUTES',
...
},
}
cli
tokript gen:route --displayName "ROUTES"
includes
- Required:
false
- Type:
string[]
- Default:
- Cli Option:
--includes
-ic
config
tok-cli.config.ts
{
'gen:route': {
includes: ['*.ts', '*.tsx'],
...
},
}
cli
tokript gen:route --includes '*.ts', '*.tsx'
ignored
- Required:
false
- Type:
string[]
- Default:
['_app.tsx', '_document.tsx', '_error.tsx', 'api/**']
- Cli Option:
--ignored
-ig
config
tok-cli.config.ts
{
'gen:route': {
ignored: ['_app.tsx', '_document.tsx', '_error.tsx', 'api/**'],
...
},
}
cli
tokript gen:route --ignored '_app.tsx', '_document.tsx', '_error.tsx', 'api/**'
oneDepth
- Required:
false
- Type:
boolean
- Default:
true
- Cli Option:
--oneDepth
-od
config
tok-cli.config.ts
{
'gen:route': {
oneDepth: true,
...
},
}
cli
tokript gen:route --oneDepth true