Bun

bun create

注意 — 您不需要 bun create 来使用 Bun。您根本不需要任何配置。此命令的存在是为了让入门变得更快、更容易。

使用 bun create 为新的 Bun 项目创建模板。这是一个灵活的命令,可用于使用 create-<template> npm 包、GitHub 仓库或本地模板创建新项目。

如果您希望创建一个全新的空项目,请使用 bun init

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>:全局模板
  • <project root>/.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 会在将 "bun-create" 部分写入目标文件夹之前自动将其从 package.json 中删除。

参考

CLI 标志

标志说明
--force覆盖现有文件
--no-install跳过安装 node_modules 和任务
--no-git不要初始化 git 存储库
--open完成后启动并打开浏览器

环境变量

名称说明
GITHUB_API_DOMAIN如果您使用的是 GitHub 企业版或代理,则可以自定义 Bun ping 下载的 GitHub 域
GITHUB_ACCESS_TOKEN这允许 bun create 与私有存储库一起使用,或者如果您受到速率限制

bun create 的工作原理