注意 — 您不需要使用 bun create
才能使用 Bun。您完全不需要任何配置。此命令的存在是为了使入门更快速和容易一些。
使用 bun create
模板化一个新的 Bun 项目。这是一个灵活的命令,可以用于从 React 组件、create-<template>
npm 包、GitHub 仓库或本地模板创建新项目。
如果您希望创建一个全新的空项目,请使用 bun init
。
从 React 组件创建
bun create ./MyComponent.tsx
可以将现有的 React 组件转换为完整的开发环境,只需一个命令即可实现热重载和生产构建。
bun create ./MyComponent.jsx # .tsx also supported
🚀 Create React App 的继任者 — bun create <component>
提供了开发者喜爱 Create React App 的一切,但具有更现代化的工具、更快的构建速度和后端支持。
工作原理
当您运行 bun create <component>
时,Bun 会:
- 使用 Bun 的 JavaScript 打包器 分析您的模块依赖图。
- 收集运行该组件所需的所有依赖项。
- 扫描入口点的导出,查找 React 组件。
- 生成一个
package.json
文件,其中包含运行该组件所需的依赖项和脚本。 - 使用
bun install --only-missing
安装任何缺失的依赖项。 - 生成以下文件:
${component}.html
${component}.client.tsx
(前端入口点)${component}.css
(css 文件)
- 自动启动前端开发服务器。
将 TailwindCSS 与 Bun 结合使用
TailwindCSS 是一个非常流行的实用优先 CSS 框架,用于为 Web 应用程序设置样式。
当您运行 bun create <component>
时,Bun 会扫描您的 JSX/TSX 文件(以及它导入的任何文件)中的 TailwindCSS 类名。如果检测到 TailwindCSS 类名,它将向您的 package.json
添加以下依赖项:
{
"dependencies": {
"tailwindcss": "^4",
"bun-plugin-tailwind": "latest"
}
}
我们还配置 bunfig.toml
以将 Bun 的 TailwindCSS 插件与 Bun.serve()
一起使用。
[serve.static]
plugins = ["bun-plugin-tailwind"]
以及一个 ${component}.css
文件,顶部带有 @import "tailwindcss";
@import "tailwindcss";
将 shadcn/ui
与 Bun 结合使用
shadcn/ui
是一个非常流行的组件库工具,用于构建 Web 应用程序。
bun create <component>
扫描从 @/components/ui
导入的任何 shadcn/ui 组件。
如果找到任何组件,它会运行:
# Assuming bun detected imports to @/components/ui/accordion and @/components/ui/button
bunx shadcn@canary add accordion button # and any other components
由于 shadcn/ui
本身使用 TailwindCSS,bun create
还会将必要的 TailwindCSS 依赖项添加到您的 package.json
,并配置 bunfig.toml
以将 Bun 的 TailwindCSS 插件与 Bun.serve()
一起使用,如上所述。
此外,我们还设置了以下内容:
tsconfig.json
,用于将@/*
别名设置为src/*
或.
(取决于是否存在src/
目录)。components.json
,以便 shadcn/ui 知道这是一个 shadcn/ui 项目。styles/globals.css
文件,以 shadcn/ui 期望的方式配置 Tailwind v4。${component}.build.ts
文件,用于构建组件以进行生产,并配置了bun-plugin-tailwind
。
bun create ./MyComponent.jsx
是在本地运行由 LLM(如 Claude 或 ChatGPT)生成的代码的最简单方法之一。
从 npm
bun create <template> [<destination>]
假设您没有同名的 本地模板,此命令将从 npm 下载并执行 create-<template>
包。以下两个命令的行为将完全相同:
bun create remix
bunx create-remix
有关完整的文档和使用说明,请参阅相关的 create-<template>
包的文档。
从 GitHub
这会将 GitHub 仓库的内容下载到磁盘。
bun create <user>/<repo>
bun create github.com/<user>/<repo>
可选地,为目标文件夹指定一个名称。如果未指定目标,将使用仓库名称。
bun create <user>/<repo> mydir
bun create github.com/<user>/<repo> mydir
Bun 将执行以下步骤:
- 下载模板。
- 将所有模板文件复制到目标文件夹。
- 使用
bun install
安装依赖项。 - 初始化一个新的 Git 仓库。使用
--no-git
标志可选择不初始化。 - 运行模板配置的
start
脚本(如果已定义)。
默认情况下,Bun *不会覆盖*任何现有文件。使用 --force
标志可覆盖现有文件。
从本地模板
⚠️ 警告 — 与远程模板不同,使用本地模板运行 bun create
将删除整个目标文件夹(如果它已存在)!请务必小心。
Bun 的模板引擎可以扩展以支持在本地文件系统中定义的自定义模板。这些模板应位于以下目录之一:
$HOME/.bun-create/<name>
:全局模板<项目根目录>/.bun-create/<name>
:项目特定的模板
注意 — 您可以通过设置 BUN_CREATE_DIR
环境变量来自定义全局模板路径。
要创建本地模板,请导航到 $HOME/.bun-create
并创建一个新目录,目录名为您想要的模板名称。
cd $HOME/.bun-create
mkdir foo
cd foo
然后,在该目录中创建一个 package.json
文件,内容如下:
{
"name": "foo"
}
您可以在文件系统中的其他位置运行 bun create foo
,以验证 Bun 是否正确找到了您的本地模板。
设置逻辑
您可以在本地模板的 package.json
的 "bun-create"
部分中指定安装前和安装后的设置脚本。
{
"name": "@bun-examples/simplereact",
"version": "0.0.1",
"main": "index.js",
"dependencies": {
"react": "^17.0.2",
"react-dom": "^17.0.2"
},
"bun-create": {
"preinstall": "echo 'Installing...'", // a single command
"postinstall": ["echo 'Done!'"], // an array of commands
"start": "bun run echo 'Hello world!'"
}
}
支持以下字段。每个字段都可以对应一个字符串或字符串数组。命令数组将按顺序执行。
postinstall | 在安装依赖项后运行。 |
preinstall | 在安装依赖项之前运行。 |
克隆模板后,bun create
将在将 package.json
写入目标文件夹之前,自动删除其中的 "bun-create"
部分。
参考
CLI 标志
标志 | 描述 |
---|---|
--force | 覆盖现有文件 |
--no-install | 跳过安装 node_modules 和任务 |
--no-git | 不要初始化 git 仓库 |
--open | 完成后启动并在浏览器中打开 |
环境变量
名称 | 描述 |
---|---|
GITHUB_API_DOMAIN | 如果您正在使用 GitHub 企业版或代理,您可以自定义 Bun 用于下载的 GitHub 域名。 |
GITHUB_TOKEN (或 GITHUB_ACCESS_TOKEN ) | 这使 bun create 可以与私有仓库一起使用,或者在您受到速率限制时使用。如果两者都存在,则优先选择 GITHUB_TOKEN 而不是 GITHUB_ACCESS_TOKEN 。 |
bun create
的工作原理