别名:blitz g
使用此命令将所有枯燥的代码构建到你的项目中。
可以生成页面、queries、mutations 和 Prisma 模型。即将支持基于内置模板的自 定义模板,因此你可以根据应用的需要自定义生成器。
blitz generate [type] [model]
参数 | 必须 | 描述 |
---|---|---|
type | 是 | 要生成的文件类型。下面列出了选项。 |
model | 是 | 要为其生成文件的模型名称 |
这是哪个文件由哪个命令生成的相关矩阵:
类型 | 模型 | Queries | Mutations | 页面 |
---|---|---|---|---|
all | 是 | Yes | 是 | 是 |
resource | 是 | Yes | 是 | |
model | 是 | |||
crud | 是 | 是 | ||
queries | 是 | |||
query | 是 | |||
mutations | 是 | |||
mutation | 是 | |||
pages | 是 |
blitz generate all project
将生成如下文件:
app/pages/projects/[projectId]/edit.tsx
app/pages/projects/[projectId].tsx
app/pages/projects/index.tsx
app/pages/projects/new.tsx
app/projects/components/ProjectForm.tsx
app/projects/queries/getProject.ts
app/projects/queries/getProjects.ts
app/projects/mutations/createProject.ts
app/projects/mutations/deleteProject.ts
app/projects/mutations/updateProject.ts
对于上面的例子,可以在 localhost:3000/projects 查看生成的项目索 引页面。
context/model
为了组织项目中的文件,你可以指定一个嵌套文件夹路径来生成文件。
blitz generate all admin/products
// 将在 `app/admin/products` 生成文件而不是 `app/products`。
或者,你可以通过 --context
或 -c
选项提供文件夹路径。
--parent
简写:-p
用于指定你子模型的模型生成文件,其依赖的父模型。
例如,假设你有 Project
和 Task
模型。一个 Task
属于一个 Project
,
而 Project
有许多 Task
。你将运行此命令。
blitz generate all task --parent project
这将生成如下文件:
app/pages/projects/[projectId]/tasks/[taskId]/edit.tsx
app/pages/projects/[projectId]/tasks/[taskId].tsx
app/pages/projects/[projectId]/tasks/index.tsx
app/pages/projects/[projectId]/tasks/new.tsx
app/tasks/components/TaskForm.tsx
app/tasks/queries/getTask.ts
app/tasks/queries/getTasks.ts
app/tasks/mutations/createTask.ts
app/tasks/mutations/deleteTask.ts
app/tasks/mutations/updateTask.ts
--dry-run
简写:-d
显示将生成哪些文件,但不将这些文件写入磁盘。
blitz generate all project
blitz generate mutations project
blitz generate crud admin/topsecret/files
blitz generate pages tasks --parent=projects
以下所有命令都将在你的 Prisma 模式文件中生成一个模型:
blitz generate all
blitz generate resource
blitz generate model
模型字段可以被像如下这样天机:
blitz generate model [fieldName]:[type]:[attribute]
fieldName
是你的数据库列的名称,且可以是任何东西belongsTo
添加模型关系,例如:belongsTo:user
-type
string
string
、boolean
、int
、float
、dateTime
、json
或模
型名称?
使类型可选,如下所示:string?
[]
使类型成为一个列表,如:task[]
attribute
用于添加
prisma 字段属性default
、unique
=
包含它,例如: default=false
这会
将默认值设置为 false
更多详情,查看 Prisma scalar 类型的文档 or the docs on Prisma relations。
> blitz generate model puppy isCute:boolean
> blitz generate model rocket launchedAt:dateTime
> blitz generate model task completed:boolean:default=false
blitz g model project task:Task
将生成:
model Project {
...
task Task
}
blitz g model project tasks:Task[]
将生成:
model Project {
...
tasks Task[]
}
blitz g model task belongsTo:project
将生成:
model Task {
...
project Project? @relation(fields: [projectId], references: [id])
projectId Int?
}
blitz generate model task \
name \
completed:boolean:default=false \
belongsTo:project?
将生成:
model Task {
id Int @default(autoincrement()) @id
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
name String
completed Boolean @default(false)
project Project? @relation(fields: [projectId], references: [id])
projectId Int?
}
多次运行 blitz generate model
将向现有模型添加字段。例如,下面的命令将把
subheading
字段添加到 Task
模型中。
blitz generate model task subheading:string