Skip to main content

Isopack Format

An Isopack is Meteor’s package format containing compiled source code for each architecture the package supports. Each architecture-specific build is called a “Unibuild”.

Definition

From GLOSSARY.md:
Each package used by Isobuild forms an Isopack. Isopack is a package format containing source code for each architecture it can be ran on. Each separate part built for a separate architecture is called “Unibuild”.

Isopack Structure

An Isopack contains:

Format Versions

Isopacks have evolved through multiple format versions:

Format Migration

The system can convert between formats:

On-Disk Layout

When written to disk, an Isopack directory contains:

isopack.json

The main metadata file:

Unibuild Directories

Each unibuild has its own subdirectory with:
  • Compiled JavaScript files
  • CSS resources
  • Source maps
  • Assets
  • Node modules

Unibuilds

From GLOSSARY.md:
Isopack is a package format containing source code for each architecture it can be ran on. Each separate part built for a separate architecture is called “Unibuild”.
There are multiple reasons why we can’t call it just “build” and historically the name “Unibuild” has been associated with parts of Isopacks.

Unibuild Properties

Plugin Architecture

Isopacks can contain build plugins:

Plugin Initialization

Architecture Detection

The architectures() method returns all architectures in the package:

Tarball Naming

Node Modules Integration

Isopacks track Node.js dependencies:

Watch Set Integration

Isopacks maintain comprehensive watch sets for efficient rebuilding:

Cordova Dependencies

Isopacks track Cordova plugin dependencies:

Package Metadata

Storage Locations

  • ~/.meteor/packages/ - Installed packages (release mode)
  • APP/.meteor/local/isopacks/ - Local package builds
  • REPO/.meteor/packages/ - Checkout mode packages