@foundryvtt/foundryvtt-cli

中文文档
3.0.5发布于 2026/10/10MITES Module构建来源已验证近 30 天下载 3.2万

创建 VTT 的官方 CLI

中文使用文档
文档目录14 节
  1. 安装
  2. 使用量
  3. 帮助
  4. 当前 CLI 版本
  5. 配置
  6. 发射
  7. 软件包
  8. 示例工作流程
  9. 发展
  10. API 密码
  11. 示例使用
  12. compilePack(src: string, dest: string, options?: object): P…
  13. extractPack(src: string, dest: string, options?: object): P…
  14. 捐款

铸币局

官方创始人 VTT CLI

安装

npm install -g @foundryvtt/foundryvtt-cli

使用量

帮助

fvtt --help

当前 CLI 版本

fvtt --version

配置

fvtt configure

确定您的配置是否正确, 如果不正确, 则提示您修复 .

视图

fvtt configure view

查看您的当前配置 .

设定

fvtt configure set "key" "value"

设定配置值 .

获取

fvtt configure get "key"

获得配置值 .

路径

fvtt configure path

输出您的配置文件路径 .

发射

fvtt launch

(原始内容存档于2017-03-21). Launces Foundary VTT. 可用的选项有:

  • --demo - 以演示模式启动Foundry VTT.
  • --port 30000 - 在一个特定端口上发射Foundry VTT.
  • --world my-world - 发射Foundry VTT 直接进入一个特定的世界.
  • --noupnp - 禁用 UPnP 端口转发.
  • --noupdate - 禁用自动更新检查.
  • --adminKey "ABC123" - 保护Foundry VTT的设置屏幕的管理员密钥.

软件包

fvtt package

输出当前工作包( 如果有的话) .

工人

fvtt package workon "1001-fish" --type "Module"

切换到一个特定的软件包, 从而无需通过 --type 财务报告和审定财务报表 --id 到其他软件包命令.

清除

fvtt package clear

清除当前工作包.

卸货

fvtt package unpack "compendiumName"

从当前软件包/packs/目录中读取一个数据库,并将每个文档作为序列化对象写入自己的文件. 有很多选项可以自定义输出, 检查 fvtt package unpack --help 更多信息.

如果您在终端运行此命令, 它应该输出哪些新文件被写入或更新 。 例如:

Unpacking "foundrydatav11/Data/modules/mymodule/packs/myitems" to "git/mymodule/jsons/myitems"
Wrote My_Item_Name_hPLXDSGyHzlupBS2.json

包装

fvtt package pack "compendiumName"

读取序列化对象的目录并将其写入当前套件/包/目录的数据库. 有许多选项可以自定义操作, 检查 fvtt package pack --help 更多信息.

如果您在终端运行此命令, 它应该输出哪些新文件被写入或更新 。 例如:

Packing "git/mymodule/jsons/myitems" into "git/mymodule/packs/myitems"
Packed hPLXDSGyHzlupBS2 (My Item Name)

子目录和模块

您可以为您的包目录创建子目录 。 例如,在一个模块中,模块.json可以为两个不同的系统定义一个项目包:

"packs":[
    {
      "name": "mymodule_items_sfrpg",
      "label": "MyModule Items",
      "path": "packs/items/sfrpg",
      "type": "Item",
      "private": false,
      "system": "sfrpg"
    },
    {
      "name": "mymodule_items_pf2e",
      "label": "MyModule Items",
      "path": "packs/items/pf2e",
      "type": "Item",
      "private": false,
      "system": "pf2e"
    }
]

在 Foundry 数据文件夹中,这将创建以下文件夹等级: Data/modules/mymodule/packs/items/sfrpg/ 财务报告和审定财务报表 Data/modules/mymodule/packs/items/pf2e/。 。 。 .

要打包和打包,请使用您为简编名称定义的路径 。 例如,要将jsons提取到您家目录中的文件夹:

fvtt package unpack -n "items/pf2e" --outputDirectory "~/jsons/items/pf2e"
fvtt package unpack -n "items/sfrpg" --outputDirectory "~/jsons/items/sfrpg"

要使用子目录来包装它们 :

fvtt package pack -n "items/pf2e" --inputDirectory "~/jsons/items/pf2e" --outputDirectory "packs"
fvtt package pack -n "items/sfrpg" --inputDirectory "~/jsons/items/sfrpg" --outputDirectory "packs"

示例工作流程

fvtt configure
fvtt package workon "1001-fish"
fvtt package unpack "fish"
. . . // Make some updates to the files
fvtt package pack "fish"

发展

git clone
cd foundryvtt-cli
npm install
npm run build
npm link

API 密码

某些CLI的内部功能被暴露为可以被导入到其他项目的API.

示例使用

import { compilePack, extractPack } from "@foundryvtt/foundryvtt-cli";

// Extract a NeDB compendium pack.
await extractpack("mymodule/packs/actors.db", "mymodule/packs/src/actors", { nedb: true });

// Compile a LevelDB compendium pack.
await compilePack("mymodule/packs/src/actors", "mymodule/packs/actors");

compilePack(src: string, dest: string, options?: object): Promise<void>

将源文件汇编成简编包.

参数

  • 弧 : 字符串 包含源文件的目录 .
  • 暗点 : 字符串 目标简编包.
  • 选项: 对象
    • 内德布: 布尔=虚假 是否在 NEDB 数据库中运行, 否则假设是一个 LevelDB 数据库 .
    • 雅姆尔: 布尔=虚假 源文件是否采用YAML格式,否则JSON会被假设.
    • 日志 : 布尔=虚假 是否将操作进度记录到控制台 .
    • 递归 : 布尔=虚假 是否在下面重现为子目录 曲线,否则,只有源文件直接位于 曲线 将被使用.
    • 转换 Entry : (条目:对象:承诺<虚假> 在每个条目上调用的函数 。 正在返回 虚假 表示该条目应予删除.

extractPack(src: string, dest: string, options?: object): Promise<void>

将简编内容抽取到每个主文档的单个源文件中.

参数

  • 弧 : 字符串 源头简编包.
  • 暗点 : 字符串 将提取出的文件写入目录 .
  • 选项: 对象
    • 内德布: 布尔=虚假 是否在 NEDB 数据库中运行, 否则假设是一个 LevelDB 数据库 .
    • 雅姆尔: 布尔=虚假 源文件是否采用YAML格式,否则JSON会被假设.
    • 扬子选项 : 对象= 要传递给的选项 yaml.dump 将文档序列化.
    • 日志 : 布尔=虚假 是否将操作进度记录到控制台 .
    • 文件夹 : 布尔=虚假 创建一个目录结构,与包的文件夹文档相匹配。 文件夹文档被写入与名称匹配的目录 _Folder.{yml|json}。 。 。 .
    • 文档类型 : 字符串 对于NeDB操作, a 文档类型 必须提供。 这应该和这包一样 类型 区域 模块.json 或者说 系统.json。 。 。 .
    • 转换 Entry : (条目:对象,上下文:对象:承诺<false|void>) 在每个条目上调用的函数 。 正在返回 虚假 表示该条目应予删除.
    • 变换Name : (条目:对象,上下文:对象:承诺<string|void>) 在每个条目上调用的函数 。 从此返回的值将作为条目的文件名, 并且必须包含适当的文件扩展名 。 如果不返回任何信息, 将使用自动生成的名称 .
    • 变换文件夹Name : (条目:对象:承诺<字符串> 用于生成已提取文件夹文档的目录名的函数 folders 选项.
    • 已串行化 : (内容:字符串,上下文:对象):承诺 对被序列化的内容调用的一个函数 。 从此返回的值将写入磁盘 .
    • 扩展冒险 : 布尔 将嵌入"冒险"中的文档写入自己的文档. 如果 folders 还提供了选项,将“冒险”作为文件夹处理,并写入 _Adventure.{yml|json} 改为 _Folder.{yml|json}此外,它的所有条目都按文件类型分组为子文件夹.
    • 省略挥发 : 布尔 解开时, 将候选条目相对于一个已有条目, 并且只有在非挥发性字段改变时才写 。 目前, _stats.createdTime, (中文(简体) ), _stats.modifiedTime, (中文(简体) ), _stats.lastModifiedBy, (中文(简体) ), _stats.systemVersion,以及 _stats.coreVersion 被认为是不稳定的.
    • json 选项 : 对象
      • 替换器 : (键:字符串, 值: 任意): 任意一个 QQ 箭头 < string > 数字 > 对象中要包含的替换器函数或一系列属性名称在生成的字符串中.
      • 空间 : 字符串qq数字 多个空格或用于缩进的字符串 .

捐款

欢迎拉动请求。 对于重大变动,请先开出一个问题来讨论你想要改变什么.

版本与发布记录

@foundryvtt/foundryvtt-cli 共发布 23 个版本,首次发布于 2023/03/29;过去 12 个月发布了 3 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
3.0.5latest2026/10/101 个月前
3.0.42026/07/024 个月前
3.0.32026/01/1410 个月前
3.0.22025/11/131 年前
3.0.12025/11/051 年前
3.0.02025/09/041.2 年前

关于 @foundryvtt/foundryvtt-cli 的常见问题

@foundryvtt/foundryvtt-cli 是什么?

创建 VTT 的官方 CLI

如何安装 @foundryvtt/foundryvtt-cli?

在项目目录运行 npm install @foundryvtt/foundryvtt-cli,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 fvtt,可以用 npx fvtt 直接运行。

@foundryvtt/foundryvtt-cli 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/foundryvtt__foundryvtt-cli 是否存在。

@foundryvtt/foundryvtt-cli 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@foundryvtt/foundryvtt-cli 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >17.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@foundryvtt/foundryvtt-cli 可以商用吗?

@foundryvtt/foundryvtt-cli 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@foundryvtt/foundryvtt-cli 的下载量有多少?

根据 npm 官方下载统计,@foundryvtt/foundryvtt-cli 在 2026/10/16 – 2026/11/14 这 30 天内被下载 31,854 次,日均约 1,062 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@foundryvtt/foundryvtt-cli 还在维护吗?

最新版本 3.0.5 发布于 2026/10/10(1 个月前);至今共发布 23 个版本,其中过去 12 个月发布了 3 个;首次发布于 2023/03/29。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。