Import sub-modules (npm sub-path support)

When adding an npm module to a server script, you can optionally specify a sub-path to import a specific sub-module instead of the root package.

This allows you to:

  • Import only the functionality you need

  • Use modern Node.js APIs (e.g. fs/promises)

  • Match standard JavaScript import patterns such as lodash/debounce

When a sub-path is provided when the module is added to the script, the server script runtime resolves the module as:

<module>/<sub-path>

The resolved export is exposed in the script via the configured module context name.

Examples

Named export

  • Module: date-fns

  • Sub-path: format

const { format } = modules.datefns;
const result = format(new Date(), 'yyyy-MM-dd');
console.log(result);
Some sub-modules expose named exports and must be accessed via restructuring.

Default export (function)

  • Module: lodash

  • Sub-path: debounce

const debounce = modules.lodash;
const log = (msg) => console.log(msg);
const debouncedLog = debounce(log, 300);
debouncedLog('hello');

Node.js built-in module

  • Module: fs

  • Sub-path: promises

const fs = modules.fs;
const content = await fs.readFile('/tmp/test.txt', 'utf8');
console.log(content);

Sub-path support preserves the original export behavior of each package. Always consume the module according to how it is defined by the package author.

Was this page helpful?

What made the biggest difference for you?
What went wrong? (Your feedback helps us fix it.)

Please don't include personal or sensitive data.