
Research
Two Malicious Rust Crates Impersonate Popular Logger to Steal Wallet Keys
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
@cesarchamal/single-spa-root
Advanced tools
Single-spa application example which imports registered applications from NPM packages and manages authentication features as login.
Part of Demo Microfrontends - A comprehensive Single-SPA microfrontend architecture demonstration
Single-spa application example which imports registered applications from NPM packages and manages authentication features such as login.
This application is the orchestrator of 12 microfrontends in the demo-microfrontends project:
Microfrontend | Framework | Build Tool | Port | Route | Repository |
---|---|---|---|---|---|
🎯 Root App | Single-SPA + SystemJS | Webpack 4 | 8080 | Orchestrator | This repo |
🔐 Auth App | Vue.js 2 + Vue CLI | Vue CLI Service | 4201 | /login | single-spa-auth-app |
🎨 Layout App | Vue.js 2 + Bootstrap Vue | Vue CLI Service | 4202 | All routes | single-spa-layout-app |
🏠 Home App | AngularJS 1.x + Bootstrap | Webpack 4 | 4203 | / | single-spa-home-app |
🅰️ Angular App | Angular 8 + Angular CLI | Angular CLI | 4204 | /angular/* | single-spa-angular-app |
💚 Vue App | Vue.js 2 + Vue Router | Vue CLI Service | 4205 | /vue/* | single-spa-vue-app |
⚛️ React App | React 16 + React Router | Create React App | 4206 | /react/* | single-spa-react-app |
🍦 Vanilla App | ES2020+ Modules | Webpack 4 | 4207 | /vanilla/* | single-spa-vanilla-app |
🧩 Web Components | Lit + Shadow DOM | Webpack 4 | 4208 | /webcomponents/* | single-spa-webcomponents-app |
📘 TypeScript App | TypeScript + Strict Mode | Webpack 4 + TS Loader | 4209 | /typescript/* | single-spa-typescript-app |
💎 jQuery App | jQuery 3.6 + Bootstrap | Webpack 4 | 4210 | /jquery/* | single-spa-jquery-app |
🔥 Svelte App | Svelte 3 + Rollup | Rollup + Svelte Plugin | 4211 | /svelte/* | single-spa-svelte-app |
Main Repository: demo-microfrontends
This application demonstrates a comprehensive microfrontend architecture using Single-SPA with multiple deployment strategies including local development, NPM packages, Nexus private registry, GitHub Pages, and AWS S3. It showcases 12 different microfrontends built with various frameworks and technologies.
Live Demo: http://single-spa-demo-774145483743.s3-website.eu-central-1.amazonaws.com/
Login credentials:
User | Password |
---|---|
admin | 12345 |
This project supports modern Node.js versions with legacy provider compatibility.
Recommended:
nvm install 18
nvm use 18
Note: Uses --openssl-legacy-provider
flag for Webpack 4 compatibility.
Important: Avoid using --legacy-peer-deps --force
flags. Instead, use clean install approach for proper dependency resolution.
Use the launcher scripts for automated setup:
# Windows
run.bat
# Linux/Mac
./run.sh
These scripts will:
Use this when you want to run everything locally with hot reload:
npm run install # Install root + all sub-app dependencies
npm run serve # Start root app + all MFEs concurrently
Open: http://localhost:8080
Use this to prepare the production build and run it locally:
npm run build:all # Build all microfrontends
npm run build # Build root app into dist/
npm start # Run Express server serving dist/
npm run serve # Start root + all MFEs concurrently
npm run serve:root # Start only root application
npm run dev:serve:apps # Serve all MFE dist folders
npm run build # Build root application
npm run build:dev # Build root (development mode)
npm run build:prod # Build root (production mode)
npm run build:aws:prod # Build root for AWS S3 deployment
npm run prod:build:apps # Build all microfrontends concurrently
npm start # Build and start production server
npm run dev:build:apps # Build all MFEs concurrently (development)
npm run prod:build:apps # Build all MFEs concurrently (production)
npm run dev:serve:apps # Serve all MFE dist folders concurrently
npm run lint:strict # Lint all apps concurrently (strict mode)
npm run lint:loose # Lint all apps concurrently (loose mode)
npm run install # Install dependencies
npm run lint-all:strict # Lint all apps (strict mode)
npm run lint-all:loose # Lint all apps (loose mode)
npm run clean # Clean all node_modules
# NPM Registry
npm run publish:npm:root:patch # Publish root app with patch version bump
npm run publish:npm:auth:patch # Publish auth app with patch version bump
# ... (similar for all 12 apps)
# Nexus Registry
npm run publish:nexus:root:patch # Publish root app to Nexus with patch version bump
# ... (similar for all 12 apps)
npm run serve:local:dev # Local development mode (all apps)
npm run serve:local:prod # Local production mode (static files)
npm run serve:npm # NPM packages mode (CDN loading)
npm run serve:nexus # Nexus private registry mode
npm run serve:github # GitHub Pages mode
npm run serve:aws # AWS S3 mode (import map loading)
🔐 single-spa-auth-app - Vue.js 2 authentication with FontAwesome icons (Port 4201)
🎨 single-spa-layout-app - Vue.js 2 shared layout components (Port 4202)
🏠 single-spa-home-app - AngularJS 1.x legacy integration (Port 4203)
🅰️ single-spa-angular-app - Angular 8 modern framework (Port 4204)
💚 single-spa-vue-app - Vue.js 2 progressive framework (Port 4205)
⚛️ single-spa-react-app - React 16 with hooks (Port 4206)
🍦 single-spa-vanilla-app - Pure ES2020+ JavaScript (Port 4207)
🧩 single-spa-webcomponents-app - Web Components with Lit (Port 4208)
📘 single-spa-typescript-app - TypeScript with strict typing (Port 4209)
💎 single-spa-jquery-app - jQuery 3.6 legacy integration (Port 4210)
🔥 single-spa-svelte-app - Svelte 3 compile-time optimization (Port 4211)
Total: 12 Microfrontends demonstrating 10+ different technologies and integration patterns.
All microfrontends are integrated with a centralized RxJS-based state management system:
// Available globally in all microfrontends
window.stateManager
/employees.json
App | User State | Employee Data | Cross-App Events | Visual Showcase |
---|---|---|---|---|
🔐 Auth App | ✅ Login/Logout | ❌ | ✅ All events | ❌ |
🎨 Layout App | ✅ User display | ❌ | ✅ All events | ❌ |
🏠 Home App | ✅ User state | ✅ Employee display | ✅ Event feed | ✅ Full Showcase |
🅰️ Angular App | ✅ User state | ✅ Employee display | ✅ Event feed | ✅ Full Showcase |
💚 Vue App | ✅ User state | ✅ Employee display | ✅ Event feed | ✅ Full Showcase |
⚛️ React App | ✅ Custom hooks | ✅ Employee display | ✅ Event feed | ✅ Full Showcase |
🍦 Vanilla App | ✅ User state | ✅ Employee display | ✅ Event feed | ✅ Full Showcase |
🧩 Web Components | ✅ User state | ✅ Employee display | ✅ Event feed | ✅ Full Showcase |
📘 TypeScript App | ✅ User state | ✅ Employee display | ✅ Event feed | ✅ Full Showcase |
💎 jQuery App | ✅ User state | ✅ Employee display | ✅ Event feed | ✅ Full Showcase |
🔥 Svelte App | ✅ User state | ✅ Employee display | ✅ Event feed | ✅ Full Showcase |
airbnb-base
instead of missing @vue/eslint-config-airbnb
If you encounter dependency issues:
# Clear everything and reinstall
npm cache clean --force
rm -rf node_modules package-lock.json
npm install
If offline dependencies are missing:
# Download offline dependencies (one-time setup)
npm run offline:setup
# Or manually
bash ./scripts/download-offline-deps.sh
# Then rebuild with offline mode
OFFLINE=true npm run build:prod
For faster builds, use concurrent scripts:
# Instead of sequential builds
npm run build:all # ~15-20 minutes
# Use concurrent builds
npm run prod:build:apps # ~3-5 minutes (3-4x faster)
serve
script runs both the root and all 12 microfrontends in parallel.lint-all:loose
or lint-all:strict
to lint all MFEs at once.install:all
script ensures dependencies for all MFEs are installed.FAQs
Single-spa application example which imports registered applications from NPM packages and manages authentication features as login.
The npm package @cesarchamal/single-spa-root receives a total of 641 weekly downloads. As such, @cesarchamal/single-spa-root popularity was classified as not popular.
We found that @cesarchamal/single-spa-root demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
Research
A malicious package uses a QR code as steganography in an innovative technique.
Research
/Security News
Socket identified 80 fake candidates targeting engineering roles, including suspected North Korean operators, exposing the new reality of hiring as a security function.