Skip to main content
create 会根据所选模板生成文件、配置和起步脚本,并可选地安装依赖。 想逐个文件了解生成的目录树,见 create 会生成什么

什么时候使用 create

  • 从零开始一个新扩展。
  • 快速搭出多个概念验证(PoC)。
  • 用统一的模板默认值为团队成员标准化上手流程。

create 命令的能力

用法

在用 Yarn?yarn dlx 命令需要 Yarn 2 或更新版本。Yarn 1 没有 dlx,会以 “Command not found” 错误失败。在 Yarn 1 上,请改用 npm 标签页(npx)。

参数与 flag

当你想用默认的 JavaScript 起步模板时,完全省略 --template。只有在想用 官方示例 中其他技术栈时才加上 --template=<slug>--template 也接受 GitHub URL 或 ZIP URL,因此你可以从任意仓库生成项目。 模板目录里共有 6 组 53 个模板:starters、sidebar、content scripts、new tab、toolbar action 以及特殊文件夹。运行 extension create --help 查看完整列表。默认的 javascript 模板内置在 CLI 里,因此生成时不需要任何网络请求。其他所有模板都会在创建时下载模板目录的压缩包。

模板语料的版本固定

模板目录的下载被固定到 examples 仓库的某一个不可变 commit 上。因此同一个版本的两次生成会产生完全相同的字节。有两个环境变量可以覆盖这个固定:
  • EXTENSION_CREATE_TEMPLATE_REF 指向另一个 ref。设为 main 可以恢复浮动行为。
  • EXTENSION_CREATE_TEMPLATE_URL 指向另一个完全不同的压缩包 URL。
每次生成都会在项目里写入一个 .extension-create.json 溯源文件。它记录 create 的版本、模板和来源,当模板来自模板目录的压缩包时还会记录解析出的 ref,让模板漂移始终可审计。内置的 javascript 起步模板记录的是 "source": "bundled",不带 ref。

--output json 得到机器可读输出

--output json 会在 stdout 上打印一个 schema-1 信封,并把生成过程的进度行送到 stderr:
  • 成功的运行会打印一个 status: "created" 帧。它的 value 里带有 projectPathprojectNametemplatedepsInstalled
  • 失败会打印 ok: false 以及一个 error.code:未知的模板名对应 E_TEMPLATE_NOT_FOUND,下载失败对应 E_NETWORK,目标目录的问题对应 E_DESTINATION_NOT_EMPTYE_DESTINATION_NOT_WRITABLE

共享的全局选项

也支持 全局 flag

示例命令

可用模板

完整且持续更新的模板列表,请浏览 examples 仓库

JavaScript(默认)

最小起步模板。想要干净基线时使用。

TypeScript

带预配置 tsconfig.json 的类型化起步模板。

React

为 content script 与 popup 视图接好线的 React UI。

Vue

内置单文件组件(SFC)支持的 Vue UI。

最佳实践

  • 选择与你的 UI / 运行时需求匹配的模板起步,减少前期设置漂移。
  • 第一次跑得尽量小,等基础命令流验证完再加额外的工具。