@typhonjs-fvtt/fvttdev provides a zero config build & bundle CLI tool for Foundry VTT
based on Rollup and Oclif.
The aim is to create a development tool that aids all Foundry VTT developers in developing new 3rd party extensions (modules & game systems) for this fantastic virtual tabletop which can be used for all sorts of role-playing games. Foundry VTT embraces modern web technologies and
So far only the
bundle command is implemented and provides zero config bundling for JS and Typescript development.
CSS / Sass / Less / Stylus setup with PostCSS and more. Several more commands useful for Foundry VTT development are
planned for future release.
(05/28/21): I just got significant ES Module support into Oclif v2 which is still in beta, but powers
fvttdev is the first non-trivial ESM Oclif CLI. So with ESM support now mainline in the latest Oclif v2 beta I
look forward to rapid progress in the coming months. Outside of a beta launch likely mid-summer longer term goals
aim to support the unbundle dev cycle w/ hot module replacement (HMR) in addition to already solid production
All build tooling is current as of
05.28.21 including Typescript (4.3.2), Babel (7.14.3) and PostCSS / Sass / Less /
This an alpha stage project, but a stable release on NPM is available. The bundle command works really well, but docs, tutorials, and more information and final polish plus other commands are forthcoming soon.
Install and usage (very abbreviated!)
Add to devDependencies:
Note: If you have already installed a previous version delete node_modules and any
package-lock.json file before
updating and reinstall all modules as a precautionary measure since
fvttdev just switched to the mainline Oclif v2
Add an NPM script:
"bundle-dev": "fvttdev bundle"
This will find your Foundry VTT package manifest and proceed to bundle your module / system to
You might have to make small modifications to your codebase to support Sass / Less / Stylus. The way it works is that
you must import the appropriate style file into the source code associated with it and
fvttdev via Rollup & PostCSS
will build the style file and automatically adjust the output package manifest.
You can get help options for fvttdev via running
"bundle-help": "fvttdev bundle --help" as there are various command
line options available. However, there also is a more convenient environment variable loading system available. To
learn a bit more about that and general usage with a full example of bundling a module please refer to the demo repo: