Skip to main content

Ambient config

Your mod's TypeScript and lint configuration is generated, not authored.

<installed host>/…/@modular/sdk/dist/
├── ambient/tsconfig.json    ← your mod's tsconfig extends this
├── era.json                 fingerprint keying your build to this host
└── docs/                    the offline reference

What the host rewrites

On every activation the host rewrites your mod's tsconfig.json and eslint.config.mjs so they match the installed host exactly. Anything you hand-edit in them is lost on the next activation.

If you need a compiler option the generated config does not give you, that is a gap in the ambient config rather than something to patch locally — patching it locally produces a mod that builds on your machine and nowhere else.

era.json

A fingerprint keying your build to a particular host. It is how the host knows whether a mod was built against the SDK it is currently running, rather than an older one that happened to be on disk.

The lint plugin

@modular/sdk/eslint-plugin is published so the generated eslint.config.mjs can reference it. One rule worth knowing about rewrites imports of @tvx/design-system/components to @modular/sdk/ui — the two are the same components, but only the second resolves to the host's live instance.

See Resolution for how a mod finds the SDK in the first place, and Conventions for what not to import.