Codebase
Meteor's build system (Isobuild) and CLI structure.
Overview
Meteor is a full-stack JavaScript platform with:
- Core packages in
/packages - Build system (Isobuild) in
/tools/isobuild - CLI tool in
/tools/cli - Real-time data layer via DDP
- Mobile support via Cordova
Build Pipeline
- CLI (
tools/cli/main.js) → parses commands - Project Context (
project-context.js) → resolves packages, dependencies - Isobuild (
tools/isobuild/)
- Bundler (bundler.js) → orchestrates build - Compiler (compiler.js) → compiles packages - Linker (linker.js) → wraps modules - Build plugins (Babel, TypeScript, CSS)
- Output →
star.json, programs - Runners (
tools/runners/) → run-app.js, run-mongo.js, run-hmr.js - Live App → DDP Server ↔ Minimongo ↔ UI
Directory Structure
tools/
├── cli/ # Command-line interface
├── isobuild/ # Build system core
├── packaging/ # Package management
├── runners/ # App execution engines
├── fs/ # File system utilities
├── cordova/ # Mobile/Cordova support
├── static-assets/ # Project templates
└── project-context.js # Dependency resolutionCLI (tools/cli/)
| File | Description |
|---|---|
main.js | Entry point, command dispatcher |
commands.js | Main command implementations |
commands-packages.js | Package management commands |
commands-cordova.js | Cordova/mobile commands |
Commands: meteor create, run, build, deploy, add/remove, mongo, shell
Isobuild (tools/isobuild/)
| File | Description |
|---|---|
bundler.js | High-level bundling orchestration |
compiler.js | Package compilation |
linker.js | Module wrapping and linking |
import-scanner.ts | Import statement parsing |
compiler-plugin.js | Compiler plugin API |
isopack.js | Package format handling |
Runners (tools/runners/)
| File | Description |
|---|---|
run-app.js | Web application runner |
run-mongo.js | MongoDB server runner |
run-hmr.js | Hot module reload runner |
run-all.js | Multi-runner orchestration |
Build Targets
| Target | Description |
|---|---|
web.browser | Modern browsers |
web.browser.legacy | Legacy browsers (IE11) |
web.cordova | Cordova mobile apps |
server | Node.js server |
Package Relationships
tools-core→ rspack, future integrationsaccounts-base→ all accounts-* packagesddp-server+ddp-client→ realtime communicationmongo→ minimongo (client-side)webapp→ all HTTP handling
Project Templates
Via meteor create --<template>: react, vue, svelte, angular, blaze, typescript, tailwind, solid, apollo, minimal, bare, full
Environment Variables
| Variable | Purpose |
|---|---|
METEOR_PROFILE | Build profiling |
METEOR_PACKAGE_DIRS | Additional package paths |
METEOR_DEBUG_BUILD | Verbose build output |
Troubleshooting
- Package not found: Check
package.jsname, runmeteor reset - Build plugin not running: Check
archMatching, file extensions - npm issues: Clear
.meteor/local/, runmeteor npm install