Uses https://github.com/php-forge/foxy to compile JS resources at a the root of a project. This is a work in progress, the current plan is:

Modules

  • Add a module-name.foxy.yml file to represent the library state when using foxy.
  • Add php-forge/foxy to require or require-dev in composer.json along with the following:
        "config": {
            "allow-plugins": {
                "php-forge/foxy": false
            },
            "foxy": {
                "root-package-json-dir": "theme"
            }
        },

    (The second item only being relevant if package.json is not at the root of the module in question

This module (foxy)

  • Has php-forge/foxy plugin as a dependency
  • Has a hook that rewrites library definitions to use the foxy replacement if foxy is enabled
  • Has package.json with dependency on vite
  • Provides instructions and template files for setting up project-wide compilation of contributed code

Site builders

  • Have one or more modules that use foxy in their project
  • Require and enable drupal/foxy
  • Add a yet to be provided vite.config.js to their project
  • Set up post-install/update commands to run vite build or their own implementation

See https://github.com/darvanen/drupal-js for a proof of concept for JS compilation with CSS asset import support.

Project information

Releases