This guide explains how sidecar runtime resolution works across Debug and Release builds.
- Debug builds:
- Prefer bundled Node
- Allow fallback to compatible system Node for development convenience
- Release builds:
- Bundled Node only (no PATH fallback)
- Fails fast if bundled runtime is missing or incompatible
- Makes local development flexible.
- Makes shipped builds deterministic across user machines.
- Prevents runtime drift from stale/older system Node binaries.
Contents/Resources/nodeContents/Resources/sidecar/dist/index.jsContents/Resources/sidecar/node_modules/...
The app target runs:
scripts/copy_sidecar_runtime.sh
It:
- Copies sidecar
distinto app resources. - Copies sidecar
node_modulesinto app resources. - Copies a compatible Node executable into app resources as
node. - Enforces stricter behavior on
Releasebuilds (errors for missing requirements).
- If script sandboxing blocks file operations, disable user script sandboxing for the app target build config.
- Keep
sidecar/distup to date (npm run build) when changing sidecar TypeScript code.