@qt-test/federation-sdk
v1.0.12
Published
Shared Module Federation configuration for QT Super App
Maintainers
Readme
QT Federation SDK
Shared Module Federation configuration for QT Super App ecosystem.
Installation
npm install @qt/federation-sdkUsage
In Host App (QT)
import {getSharedDependencies, withProduction} from '@qt/federation-sdk';
const USE_PRODUCTION = Boolean(process.env.PROD);
const config = (env) => {
// Your config
shared: getSharedDependencies({eager: true}), // Host loads first
};
export default USE_PRODUCTION ? withProduction()(config) : config;In Remote App (QTMove)
import {getSharedDependencies} from '@qt/federation-sdk';
const config = (env) => {
// Your config
shared: getSharedDependencies({eager: STANDALONE}), // Remote waits for host
};
export default config;Environment Variables
Production Remote URLs
Each remote can specify its own production URL via environment variables:
QTMOVE_REMOTE_URL- Production URL for QTMove remoteANALYTICS_REMOTE_URL- Production URL for Analytics remotePROFILE_REMOTE_URL- Production URL for Profile remote
Platform Support:
The federation SDK automatically handles platform-specific bundles. URLs are transformed while preserving the /${platform}/ path structure.
Example - Development:
// Development URLs (in rspack.config.mjs)
remotes: {
QTMove: `QTMove@http://localhost:3000/${platform}/QTMove.container.js.bundle`,
}Example - Production:
# Host app production build for Android
PROD=1 QTMOVE_REMOTE_URL=https://qtmove.vercel.app npm run build:android
# Results in:
# QTMove@https://qtmove.vercel.app/android/QTMove.container.js.bundle
# Host app production build for iOS
PROD=1 QTMOVE_REMOTE_URL=https://qtmove.vercel.app npm run build:ios
# Results in:
# QTMove@https://qtmove.vercel.app/ios/QTMove.container.js.bundleConfiguration
PROD=1- Enable production URL transformationREMOTE_CDN_URL- Override default production CDN URL (deprecated - use specific vars)
Versioning
npm run version:patch- Patch version (1.0.0 → 1.0.1)npm run version:minor- Minor version (1.0.0 → 1.1.0)npm run version:major- Major version (1.0.0 → 2.0.0)
