Blog

What's New in Commandbox 4 — Ad-hoc Module Loading

Eric Peterson July 18, 2018

Spread the word

Eric Peterson

July 18, 2018

Spread the word


Share your thoughts

CommandBox has a new super power for your task runners — you can now load ad-hoc modules on the fly!

The syntax is pretty straight-forward: call loadModule passing in the path to the module you want to load.

Let me show you the beginning of a task runner I whipped up to create a PR to add adobe@2018 to all of our Travis builds. I wanted to use Hyper, an HTTP client, instead of raw cfhttp calls. First, I installed Hyper from ForgeBox in to the same folder as my task runner. Then I referenced the relative path in my loadModule call.

function run(
    string searchQuery,
	string newEngine,,
	string user,
	string forkUser,
	string githubToken
) {
    loadModule( "modules/hyper" );
    var githubAPI = getInstance( "HyperBuilder@hyper" );
    githubAPI.defaults.setAutoSerializeQueryString( false );
    githubAPI.defaults.setBaseUrl( "https://api.github.com" );
    githubAPI.defaults.setHeader( "Authorization", "token #githubToken#" );

    var results = githubAPI.get( "/search/code", {
        "q" = "#encodeForURL( searchQuery )#+user:#user#+filename:.travis.yml"
    } );

    /* .... */
}

Now I can update all my own personal modules that use Travis CI to test on Adobe 2018 with my task runner:

CommandBox:>task run taskFile=AddEngineToTravisBuilds :searchQuery=adobe@2016 :newEngine=adobe@2018 :user=elpete :forkUser=elpete :githubToken=hahahahahaha

You can check out the full code here in this gist.

There you have it! It's even easier to use task runners now for those one off commands. loadModule is available on the latest stable version of CommandBox (4.1.0).

Add Your Comment

Recent Entries

CommandBox: A Smarter Foundation for BoxLang and CFML Workflows

CommandBox: A Smarter Foundation for BoxLang and CFML Workflows

In day-to-day development, some tools simply do their job… and others quietly change the way you work. CommandBox falls into the second category.

It doesn’t replace your editor, framework, or existing applications. Instead, it becomes the common ground where CFML and BoxLang development meet ,giving teams a consistent, reliable way to build, run, and evolve their projects.

Victor Campos
Victor Campos
January 16, 2026
BoxLang v1.9.0 : Production-Ready Stability, Enhanced Lifecycle Management, and Rock-Solid Reliability

BoxLang v1.9.0 : Production-Ready Stability, Enhanced Lifecycle Management, and Rock-Solid Reliability

Happy New Year! The BoxLang team is excited to announce BoxLang 1.9.0, a significant stability and compatibility release focused on production-readiness thanks to our client migrations and new application deployments. This release also introduces array-based form field parsing conventions, enhanced datasource lifecycle management, improved context handling, and resolves over 50 critical bugs to ensure enterprise-grade reliability for mission-critical applications.

Luis Majano
Luis Majano
January 09, 2026
DocBox v5 - Reborn: Modern API Docs for BoxLang & CFML

DocBox v5 - Reborn: Modern API Docs for BoxLang & CFML

Welcome to DocBox v5! We didn't just update DocBox. We rebuilt it from the ground up.

DocBox v5.0.0 represents a complete architectural rewrite—modern syntax, blazing performance, and a stunning new look that finally brings API documentation into 2025. Gone are the clunky HTML pages of yesteryear. Say hello to a gorgeous, theme-driven single-page application that makes browsing your API docs feel like using a premium developer tool. We have also released a dedicated module for BoxLang: BX-DOCBOX. A fully interactive CLI tool for generating your docs from the command line using pure BoxLang.

Luis Majano
Luis Majano
January 06, 2026