2016-03-25 4 views
0

私はマイクロサービスを探しており、より正確なAngular2マイクロサービスを目指しています。主なアイデアは十分に簡単だと思われますが、私は異なるAngular2アプリの落ち着きを作りたいので複雑になります。Angular2の趣味

私がこれを意味しているのは、私がアプリAとアプリBをコントロールしていない2つのアプリがあるとします。それぞれ異なるチームによって作成されています(1つは2Dビューア、もう一方は3Dビューア)。私は<service target = "url">のようないくつかのカスタムタグを持つhtmlファイルを定義し、次にプロキシに合成を行い、それをユーザに提供させる何らかのコンポジションプロキシを構築することを考えていました。

私はずっとウェブを研究していますが、私はangular2のコンポジションでは何も見つかりませんでした。遭遇した問題のいくつかをご紹介します。

  • 付属のスクリプトの順序。各アプリには異なるスクリプトが含まれている必要があるかもしれないので、正しい順序でスクリプトを含めないとアプリケーション全体がクラッシュする可能性があります。

  • 適切にブートストラップされた完全に新しい「コア」コンポーネントを構築し、適切なコンポーネントのみをブートストラップして、すべてを構成します。アプリは、私は同じ名前のコンポーネントが発生することがあります異なるため

  • 1つのアプリから必ずCSSを作るには、他の

  • 命名問題からCSSを上書きしません。

これらすべての問題は、すべてのファイルを解析してそれに応じて修正するだけで解決できるようです。問題は、jsファイルが縮小化され統一されている場合、同じアイデアは正確には機能しません。また、すべての要求に対してこれを実行するには、多くの処理能力が必要です(私はちょっとホットビルド/ロードしたいと思っています)。

このようなコンポジションプロキシを構築するにはどうすればよいですか、これを行う方法の例やドキュメントはありますか?

+0

アプリはサービスではありません。視聴者とゲームを組み合わせるのは正確に何でしょうか?ビューアゲーム?私はむしろ、あなたがもう一方の機能を使いたいと思っています。その後、私たちは正方形に戻ります:アプリはサービスではありません。 – zeroflagL

+0

@zeroflagL私は、さまざまなコンポーネントを組み合わせる方法を探しています。それぞれ異なるサーバーから来ており、それぞれが独立して配備可能です。たぶんそれらをマイクロサービスと呼ぶのは、言葉の賢明な選択ではなく、その例は少し極端です。より良い例は、左側に2Dビューア、右側に3Dビューアがあり、それぞれ異なるチームによって開発されます。 – user1640736

+0

iframeを使用するのが最も簡単な方法です。 – Targaryen

答えて

0

私はあなたがしたいことを理解していますが、私が必要とするのは、あなたの必要とするすべてが、Angular2の機能の中から必要なものをすべて見ることができるかどうかはわかりません。

1)含まれるスクリプトの順序。各アプリには の異なるスクリプトを含める必要がある可能性があるため、右に含めないと の注文がアプリ全体をクラッシュさせる可能性があります。適切だけ右 コンポーネントがブートストラップされるとすべてのことを有する、ブートストラップされた全く新しい「コア」 コンポーネントを構築

2)。アプリがあなたのポイントへ

私がお答えします私は同じ名前のコンポーネントが発生する場合があります 異なるため、他のネーミングの問題からCSSを上書きしない1つの アプリから必ずCSSを作る

3) :

export function loadModuleA() { 
    return System.import('./pages/module-A-view/a.module').then(mod => mod.ModuleA) 
} 

export function loadModuleB() { 
    return System.import('./pages/module-B-view/a.module').then(mod => mod.ModuleA) 
} 

export const routes: Routes = [ 
    { 
     path: 'core/sectionA', 
     loadChildren: loadModuleA 
    }, 
    { 
     path: 'core/sectionB', 
     loadChildren: loadModuleB 
    }, 

1)あなたは、次のように、あなたの "アプリ・ルーティング" で動的モジュールのロードを使用します

あなたimport場合ModuleAでライブラリを使用すると、明示的exportそれが各モジュールAとモジュールBが自分の依存関係 を持っていない限り、あなたのようにあなたの「コア」を指定)にModuleB利用できるようにするつもりはありませんあなたはメインのapp.module.tsとモジュール自身のモジュールファイルの依存関係をシンプルにしています。

3)本当に主要なスタイルシートが必要な場合は、すべてのコンポーネントがカスタムファイルを持つことができます。 angular cliを使用すると、たとえば、新しいコンポーネントを作成するたびに、cliはコンポーネントファイル、scssファイル、htmlファイル、およびspecファイルを生成します。そうでなければ、同じように簡単にそれを自分で行うことができます。あなたが代わりに(のは言わせて)モジュールAのすべてのコンポーネントに固有のスタイルシートを望んでいた場合、私はそれを行う方法がわからない

@Component({ 
    selector: 'whatever', 
    templateUrl: './whatever.component.html', 
    styleUrls: [ './whatever.component.scss' ] 
}) 
export class WhateverComponent 

関連する問題