Skip to content

@vttforge/vite-plugin / VttforgeOptions

Interface: VttforgeOptions ​

Properties ​

downloadUrl? ​

optional downloadUrl?: string

The download URL written into the built manifest: the archive of this version. {version} is replaced with the version being built, which is the one thing that changes per release.

Falls back to VTTFORGE_DOWNLOAD_URL. Left unset, whatever the source manifest holds is kept.


entry? ​

optional entry?: string

Entry JS file relative to the project root. Default: scripts/main.mjs.


id ​

id: string

Foundry package id. Must match the id declared in the manifest (system.json for systems, module.json for modules) and the folder Foundry serves the package from.


kind? ​

optional kind?: "system" | "module"

Whether this is a Foundry system (default) or module. Determines the Foundry base path used for chunk resolution (/systems/<id>/ vs /modules/<id>/) and the default manifest filename.


manifest? ​

optional manifest?: string

Path to the manifest file relative to the project root. Default: system.json (when kind === 'system') or module.json (when kind === 'module').


manifestUrl? ​

optional manifestUrl?: string

The manifest URL written into the built manifest: where Foundry looks to learn whether a newer release exists.

Falls back to VTTFORGE_MANIFEST_URL, so a release workflow sets it without editing the Vite config. Left unset, whatever the source manifest holds is kept.


staticAssets? ​

optional staticAssets?: string[]

Paths copied verbatim to dist/ at the start of every build. Each entry may be a file or a directory; directories are copied recursively. Default: ['template.json', 'lang', 'templates', 'packs'], plus the directory of every packs[].path the manifest declares. The manifest is always copied separately so the version sync hook can rewrite it.

MIT licensed.