問題タブ [micro-frontend]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - Webpack を使用して、別の Webpack でビルドされた外部モジュールを動的にロードする方法
Webpack で構築された 2 つの JavaScript プロジェクトを管理しているとします。
- User-WebsiteというWeb サイト
- External-Moduleという JavaScript モジュール
マイクロ フロント エンドアーキテクチャで説明したのと同じ理由で、2 つの別々のプロジェクトを使用していることに注意してください。
User-Websiteが必要に応じて (任意の JavaScript モジュール技術を使用して) External-Moduleを動的にロードできるようにしたいと考えています。私のUser-Websiteは、ビルド時にExternal-Moduleに到達する URL を認識しています。
User-WebsiteとExternal-Moduleの両方で必要なテクノロジを選択できます。
私は解決策を探しています:
- これは簡単に実装できます (おそらく、Webpack がすでにチャンクを動的にロードするために処理している JSONP でしょうか?)
- これにより、 User-WebsiteとExternal-Moduleの両方で大きなオーバーヘッドが追加されることはありません(たとえば、JavaScript モジュールは見た目は良いですが、多くのポリフィルが必要です)。
私の質問はhttps://github.com/webpack/webpack/issues/7526に関連しています
External-Moduleで JSONP ライブラリ出力を使用しようとしましたが、それをUser-Websiteにロードする方法がわかりません。
User-WebsiteでSystemJSを使用してExternal-Moduleを動的にロードすることも考えています。
javascript - マイクロ フロント エンド/Web コンポーネント/Vue ルーター エラー: Uncaught TypeError: プロパティを再定義できません: $router
問題が発生しました。以下はシナリオです。
4〜5つの画面/コンポーネント(ユーザーの管理、通知の管理、ロールの管理など)を持つvueアプリケーション(my-adminマイクロアプリ)を開発し、次のように書いたrouter.jsを作成しました:
以下のように、このルーターオブジェクトをmain.jsにインポートしました。
そして最後に、このマイクロアプリを main.js の Web コンポーネント (MainLayout コンポーネント)として以下のようにラップします。
次のコマンドでこのマイクロアプリをビルドします。
このマイクロアプリは以上です。このマイクロアプリを個別に実行すると、完全に実行されます。
しかし、私のシナリオでは、Vueのみで開発されたシェル アプリケーション (my-shell) があります。このシェル アプリケーションには独自の vue ルーターもあり、以下のように main.js にインポートされます。
. シェル ルータ:
そして、このルーターオブジェクトを以下のように my-shell の main.js にインポートしました:
そして、my-shell の index.html 内にタグ(内) を追加して、以下のようにマイクロ アプリのビルド (my-admin.js ファイル) をロードしました。
しかし、私が my-shell application を開始しているとき。それは以下のエラーをスローしています:
このエラーを取り除くにはどうすればよいですか?
c# - Angular を使用してレガシー アプリケーションにマイクロ フロントエンド アーキテクチャを実装する方法
最近、私たちのチームは、レガシー製品にマイクロ フロント エンド アーキテクチャを実装することを決定しました。これは、Asp.Net aspx ページと javascript/jquery を使用して開発されました。
昨年、アプリケーションで一部のビューに angular の使用を開始しました。angular をロードするには、prod ビルド ファイルを .net プロジェクトに配置し、コンポーネントを aspx マスター ページにロードします。
保留中の残りの古いビューを、マイクロ フロント エンド アーキテクチャを使用して角度付きに移行することを計画しています。
そのため、私は同じことについて小さな poc を行い、アーキテクチャをそれに近い場所に到達させることができました。
この URL に従って実装し、ポート 4400 で実行しました。
そして、私の既存のAngularプロジェクトでは、customElementsを使用してこれをロードしています
そして、これは期待どおりに機能し、開発環境に customElements をロードできます。しかし、本番環境では、実装方法が本当にわかりません。
私の懸念:
prod の一部のポートでもアプリを実行する必要がありますか? はいの場合、それを行う方法と、ユーザーがポートを変更できるように動的にすることができます。.net アプリケーションでの方法。クライアントはそのポートですでに何かを実行している可能性があるため
私が達成しようとしている方法は正しいかどうかです。
前もって感謝します。