diff --git a/packages/mosaic/src/stages/gateway-config.ts b/packages/mosaic/src/stages/gateway-config.ts index fdfd8ba..6002169 100644 --- a/packages/mosaic/src/stages/gateway-config.ts +++ b/packages/mosaic/src/stages/gateway-config.ts @@ -294,7 +294,12 @@ export async function gatewayConfigStage( } // Install the gateway npm package on first install or after failure. - if (!opts.skipInstall && !daemonRunning) { + // MOSAIC_GATEWAY_SKIP_NPM_INSTALL=1 forces a skip even without opts.skipInstall: + // used by dev/offline installs where @mosaicstack/gateway is already present + // globally (e.g. a build-from-source `install.sh --dev`) and must not be + // overwritten by the registry @latest build. + const skipNpmInstall = opts.skipInstall || process.env['MOSAIC_GATEWAY_SKIP_NPM_INSTALL'] === '1'; + if (!skipNpmInstall && !daemonRunning) { installGatewayPackage(); }