Tuvix.jsは、React、Vue、Svelte、Angular、vanilla JSのマイクロアプリを1つのホストページにマウントします。ルーティング、イベントバス、サンドボックス、サーバーレンダリングは個別のパッケージとして提供され、必要になったときに追加できます。
npx create-tuvix-appimport { createOrchestrator } from 'tuvix.js';const orchestrator = createOrchestrator({ router: { mode: 'history', routes: [ { path: '/dashboard/*', app: 'dashboard' }, { path: '/settings/*', app: 'settings' }, ], },});orchestrator.register({ name: 'dashboard', entry: 'https://cdn.example.com/dashboard/main.js', container: '#main-content', activeWhen: '/dashboard/*',});orchestrator.start();/dashboard/overviewname: 'dashboard'activeWhen: '/dashboard/*'name: 'catalog'activeWhen: '/shop/*'name: 'checkout'activeWhen: '/checkout/*'name: 'settings'activeWhen: '/settings/*'@tuvix.js/event-bus8つの構成要素があります。統合パッケージtuvix.jsをインストールすると中核の5つが手に入り、シェルの成長に合わせて個別のパッケージを追加できます。
React、Vue、Svelte、Angular、vanilla JSのマイクロアプリを1つのシェルで並べて実行できます。
マイクロアプリガイド各パッケージは他の@tuvix.jsパッケージにのみ依存します。インストールするのはimportするものだけです。
すべてのパッケージルーターはURLの変化に応じて、historyモードまたはhashモードでアプリをマウント・アンマウントします。
@tuvix.js/routerアプリはグローバルを共有せずに、型付きイベントをpublish・subscribeします。
@tuvix.js/event-busShadow DOMは各アプリのスタイルをそのコンテナ内に閉じ込めます。JsSandboxは、破棄できるProxy windowに対してスクリプトを実行します。
@tuvix.js/sandboxローダーはアプリのバンドルをオンデマンドで取得し、キャッシュし、失敗したロードを再試行します。
@tuvix.js/loaderページ内パネルに、登録済みのアプリ、アクティブなルート、イベントバスの通信が一覧表示されます。
@tuvix.js/devtoolsマイクロアプリをサーバーでレンダリングし、そのHTMLを文字列またはストリームとしてシェルのテンプレートに組み込みます。
@tuvix.js/server各アダプターは、コンポーネントをオーケストレーターがマウント、更新、アンマウントできるマイクロアプリに変換します。
createReactMicroAppがコンポーネントをラップします。useTuvixPropsとuseTuvixBusでpropsとイベントを読み取ります。
npm i @tuvix.js/reactcreateVueMicroAppはVue 3アプリをマウントし、propsとイベントバス用のコンポーザブルを提供します。
npm i @tuvix.js/vuecreateSvelteMicroAppはSvelte 3、4、5のコンポーネントをマウントします。
npm i @tuvix.js/sveltecreateAngularMicroAppはAngular 15以降のコンポーネントをコンテナにブートストラップします。
npm i @tuvix.js/angulardefineMicroAppは素のJavaScriptにmount、unmount、updateのフックを提供します。
npm i @tuvix.js/coreまずは統合パッケージから始めましょう。インストールを小さくしたいときは個別のパッケージに切り替えます。
core、router、event bus、loader、sandboxを含む統合パッケージです。
オーケストレーターです。マイクロアプリを登録し、そのライフサイクルを実行します。
historyモードまたはhashモードで、URLに応じてマイクロアプリを有効化します。
マイクロアプリ間の型付きpublish/subscribeです。
キャッシュと再試行付きで、アプリのバンドルをオンデマンドでロードします。
Shadow DOMによるCSS分離と、ProxyによるJS分離を提供します。
ホストページのためのサーバーサイドでの合成とストリーミングを提供します。
Webpack Module Federationのリモートからマイクロアプリをロードします。
アプリ、ルート、イベントのためのページ内デバッグパネルです。
Reactアダプター、フック、サーバーレンダリング用ヘルパーです。
Vue 3アダプター、コンポーザブル、サーバーレンダリング用ヘルパーです。
サーバーレンダリングに対応したSvelteアダプターです。
サーバーレンダリングに対応したAngularアダプターです。
アイランドのCSSとmodulepreloadリンクをSSRのheadに挿入するViteプラグインです。これにより、サーバーレンダリングされたマイクロアプリが最初の描画時からスタイル適用済みになります。
コマンドラインから新しいホストとマイクロアプリのプロジェクトを生成します。