Skip to content

Provides a zero config build tool for Foundry VTT based on Rollup and Oclif

License

Notifications You must be signed in to change notification settings

typhonjs-fvtt-lib/fvttdev

Repository files navigation

@typhonjs-fvtt/fvttdev

NPM Code Style License

Build Status Coverage Dependency Status

Why?

@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.

Roadmap

(05/28/21): I just got significant ES Module support into Oclif v2 which is still in beta, but powers fvttdev. 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 bundling.

All build tooling is current as of 05.28.21 including Typescript (4.3.2), Babel (7.14.3) and PostCSS / Sass / Less / Stylus.

Warning

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!)

In package.json:

Add to devDependencies: "@typhonjs-fvtt/fvttdev": "0.0.18"

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 release.

Add an NPM script: "bundle-dev": "fvttdev bundle"

This will find your Foundry VTT package manifest and proceed to bundle your module / system to ./dist.

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:

https://github.com/typhonjs-fvtt/demo-fvttdev-module

About

Provides a zero config build tool for Foundry VTT based on Rollup and Oclif

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published