Skip to main content

Import Basics

Soul provides a flexible import system to organize and reuse code across files.

Import Entire Module

Named Imports

Import specific items from a module:

Default Exports

Export Syntax

Named Exports

Export Existing Values

Export with Aliases

Module Resolution

Relative Imports

Package Imports

Import installed packages from soul_modules:

Path Aliases

Configure path aliases in soul.json for cleaner imports:
Then use in your code:

Module Patterns

Barrel Exports

Create an index file to re-export from multiple modules:

Factory Module

Configuration Module

Circular Dependencies

Soul handles circular dependencies, but they should be avoided:

Dynamic Imports

For conditional or lazy loading:

Module Best Practices

Each module should have one clear purpose. Don’t mix unrelated functionality.
Be explicit about what you export. Don’t export internal helpers.
Modules should not execute code on import unless necessary.

Common Patterns

Namespace Pattern

Module Initialization