Problem/Motivation
Varbase 11 used to obtain six front-end libraries by running recipes/varbase_starter/scripts/drupal-libraries-sync.js, a Node script that copied files out of node_modules/ into web/libraries/, driven by a drupal-libraries block, six npm dependencies and a postinstall hook in package.json. That is replaced by Composer packages on Packagist, each required by the module or the varbase_* recipe that actually loads it.
vardot/aos2.3.4 (new)vardot/jquery.fancytree2.38.5 (new)vardot/ckeditor5-media-embed-drupal47.6.2 (new)vardot/ace1.44.0 (refreshed from a 2017 fork)vardot/dropzone5.9.3 (refreshed from a 2017 fork)swagger-api/swagger-ui, already required bydrupal/openapi_ui_swagger; it only needed an installer path.
All are type: drupal-library except swagger-api/swagger-ui, which is type: library.
drupal/varbase_components loads /libraries/aos/aos.css and /libraries/aos/aos.js. No module requires that library. vardot/aos 2.3.4 is now on Packagist as a drupal-library.
The require belongs in the recipe rather than in the module because the consuming module does not require the library itself: without this line the recipe installs a module whose front-end asset never arrives.
For contrast, no recipe line was added where a module does require its own library (drupal/anchor_link with vardot/ckeditor5-anchor-drupal, drupal/better_exposed_filters with drupal/nouislider_js, drupal/yoast_seo with goalgorilla/rtseo.js, drupal/klaro with drupal/klaro_js, drupal/openapi_ui_swagger with swagger-api/swagger-ui). That is deliberate, so there is one place to bump per library and no recipe pin can later block a module upgrade.
Steps to reproduce
- Apply the Varbase Content Base recipe on a fresh Varbase 11.4.5 site.
- Look for
/libraries/aos/aos.cssand/libraries/aos/aos.jsinweb/libraries/: absent, unless the project'sdrupal-libraries-syncNode script copied it out ofnode_modules/. - The front-end asset the module declares never arrives.
Environment: Drupal core 11.4.5, Varbase 11.0.x, PHP 8.4, MariaDB, DDEV.
Proposed resolution
composer.json: requirevardot/aos: ^2.3.4.
Verified on a freshly installed Varbase 11.4.5 site in DDEV, with every package resolved from Packagist and no VCS repositories:
- 14/14 declared library files present on disk; 10/10 assets return HTTP 200.
- 7/7 Drupal libraries discovered, every asset resolving, all 7 rendering the Composer paths.
- Status report green:
ace_editorOK,dropzonejs_libraryOK,taxonomy_managerOK, media-embed installed at 47.6.2 matching core 47.6.2. ace_editorPHPUnit: 69 tests, 709 assertions, 0 failures.phpcsclean on every changed PHP file.yarn installsucceeds with none of the six npm library packages present.
Remaining tasks
- ✅ File an issue
- ✅ Addition/Change/Update/Fix
- ✅ Testing to ensure no regression
- ➖ Automated unit/functional testing coverage
- ➖ Developer Documentation support
- ➖ User Guide Documentation support
- ➖ UX/UI designer responsibilities
- ➖ Accessibility and Readability
- ❌ Reviewed by a human
- ❌ Code review by maintainers
- ❌ Full testing and approval
- ❌ Credit contributors
- ❌ Review with the product owner
- ❌ Update Release Notes
- ❌ Release
User interface changes
- N/A
API changes
- N/A
Data model changes
- N/A
Release notes snippet
- The recipe now requires
vardot/aos, so the AOS library Varbase Components loads is installed with Composer.
Issue fork varbase_content_base-3620361
Show commands
Start within a Git clone of the project using the version control instructions.
Or, if you do not have SSH keys set up on git.drupalcode.org:
Comments
Comment #3
rajab natshah