mondarth-campaign/docs/developers/why.rst

44 lines
1.9 KiB
ReStructuredText
Raw Permalink Normal View History

2025-07-14 19:00:35 +01:00
Why ...
=======
... use ``pnpm``?
-----------------
``pnpm`` uses a cache and is more efficient than ``npm``.
... use ``github``?
-------------------
It is pretty ubiquitous and virtually a standard for managing Foundry modules.
... use ``zx`` for scripting?
-----------------------------
We have ``nodejs`` installed so may as well stick with javascript. It is also more platform independent.
... use ``vite``?
-----------------
It provides nice tools (like an |HMR| development server) out of the box.
... use ``vitest``?
-------------------
Clean, simple, flexible, and ties in to ``vite`` ecosystem.
... use ``docker``?
-------------------
For ancillary tooling it provides a neat way to isolate from the host (so we can provide neat features without needing to have you install a load of stuff). It also provides a nicely isolated environment for running development Foundry VTT servers, which can also be used in more advances scenarios in ``.github/wormflows``.
... document with Sphinx?
-------------------------
This is just my taste. I like the power and simplicity of ReStructured Text (more that Markdown but shallower learning curve than, for example, LaTeX). I also like the flexible output method from Sphinx. (See :ref:`replacing sphinx`)
... all the ``svelte`` stuff?
-----------------------------
This module template assumes you will be using `svelte <https://svelte.dev>`_ for any UI (rather than the Foundry Handlebars). :program:`Svelte` is (|IMHO|) a more powerful, more reactive, yet simpler, UI framework. It plays nicely with ``vite`` and together they produce small modules. One can use a complete library, such as `TyphonJS <https://github.com/typhonjs-fvtt-lib>`_ (which attempts to replicate the Foundry API UI as Svelte components), or simply wrap standard Svelte by extending `ApplicationV2 <https://foundryvtt.com/api/v12/classes/foundry.applications.api.ApplicationV2.html>`_. Which is better depends on your objectives.