2017-07-20 13 views
0

共通/共有リソースを持つ1つのディレクトリから複数のアプリケーションを実行するローカル環境を設定しようとしています。ローカルで実行されるすべての角度プロジェクトで共通のリソースを共有するにはどうすればよいですか?

|AngularApps 
|-App1 
|-App2 
    |---app 
    |---index.html 
    |---tsconfig.json 
    |---tslint.json 
    |---typings.json 
    |---systemjs.config.js 
|-node_modules 
|-package.json 

そして、私はルートにLITE-サーバを使用するが、それゆえ私はsystemjs.config.jsパスを変更した:

paths: { 
     // paths serve as alias 
     'npm:': 'node_modules/' 
    }, 
    // map tells the System loader where to look for things 
    map: { 
     // our app is within the app folder 
     app: 'App2/app', 

私は(局所的に)、このディレクトリ構造を有します私はApp1ののzone.jsを読み込むとき

は、今私のコンポーネントのほとんどを見つけることができません:

enter image description here

同じトピックを指すオンライントピックは見つかりませんでした。

アイデアは、すべてのリソースを複製しないようにすることです。

答えて

-1

systemjs.config.jsでこのような何か:Index.htmlと

<app-root>Loading Client...</app-root> 

paths: { 
     // paths serve as alias 
     'npm:': 'node_modules/' 
    }, 
    // map tells the System loader where to look for things 
    map: { 
     // our app is within the app folder 
     app: 'app', 
     'angularstuffhere':'angularstuffhere' 
    }, 
packages: { 
     app: { 
     main: './main.js', 
     defaultExtension: 'js' 
     }, 
     rxjs: { 
     defaultExtension: 'js' 
     } 
    } 

は今appフォルダおよびリファレンスアプリ/ App1の中であなたのapp.moduleを作成/ appとapp/App2/app;コンポーネントを持つか、モジュール自体である可能性があります。これがあなたが必要とするものです。

あなたは二つの異なる無関係のアプリをしたい場合は、(2 systemjs.configは不要)あなたのsystemjs.config.jsに次ないでください:Index.htmlと

<app1-root>Loading Client...</app1-root> 
<app2-root>Loading Client...</app2-root> 

paths: { 
      // paths serve as alias 
      'npm:': 'node_modules/' 
     }, 
     // map tells the System loader where to look for things 
     map: { 
      // our app is within the app folder 
      app: 'App1/app', 
      app2: 'App2/app', 
      'angularstuffhere':'angularstuffhere' 
     }, 
    packages: { 
      app: { 
      main: './main.js', 
      defaultExtension: 'js' 
      }, 
      rxjs: { 
      defaultExtension: 'js' 
      } 
     } 

アップデート:

は、以下にbsconfig.jsonの提供するフォルダを変更してみてください:

"baseDir": "dirofyourapp", 

あなたが問題をコンパイルする必要がありますので、package.jsonに次のように変更:あなたはスクリプトの1セットで異なるアプリケーションに実行することはできません

"scripts": { 
    "build": "tsc -p dirofyourapp/", 
    "build:watch": "tsc -p dirofyourapp/ -w", 
    "build:e2e": "tsc -p e2edirofyourapp/", 

と独自のカスタムスクリプトを作成する必要がありますin package.json

再利用可能なコードが必要な場合は、再利用可能な独立したモジュールを作成し、複雑なメンテナンス可能な開発環境を作成するのではなく、インポートすることでアプリで使用します。

アプリケーションの多くで使用することができ、再利用可能なモジュールを作成する方法の例:

https://github.com/primefaces/primeng/blob/master/src/app/components/chart/chart.ts

+0

こんにちは@Garyを、あなたはルートに1 systemjs.config.jsを持っており、そこにマッピングを宣言するために示唆されていますか? – Vishal

+0

異なるフェッチフォルダの使い方を教えてください。 2つのアプリを作ることは完全にあなたの選択です。しかし、App1フォルダとApp2フォルダを使用する場合は、フォルダベースの分離ではなく、子モジュールを使用する方がよいでしょう。 – Gary

+0

'rootに1つのsystemjs.config.jsがあり、app1とapp2が別々のアプリケーションであれば、そこへのマッピングが存在することを示唆しています。それ以外の場合は、子モジュールを使用します。とにかくngmoduleで宣言しなければならないことを覚えておいてください。抜け道はありません。あなたが子モジュールまたは親でそれをするかどうかは、あなたが持っている選択です。私はあなたの必要性にコードを変更しました。 – Gary

-1

は、最後にそれが求職者が助けを持っているように、答えを投稿し、取り組んで作られました。

解決策は、すべての角型プロジェクトの共通ライブラリをすべて保持するために空のフォルダ(ホーム)を最初に作成することです。ホームフォルダに

package.jsonを追加し、すべての角度のプロジェクト(an ideal one https://github.com/angular/quickstart/blob/master/package.json)

に使用しようとしているすべての依存関係は、今、あなたはLITE-サーバー(https://github.com/johnpapa/lite-server)の-globalをインストールしていることを確認してください言及し、この

ここでルートにbs-config.jsonを作成します。この方法でローカルホストをスコープします。つまり、実行するプロジェクトを教えてください。

これを取得したら、そのアプリケーションの下で使用したいすべてのアプリケーションの子ディレクトリを使用できます。どのアプリでもパスを変更する必要はありません。

すべてがスムーズに実行されます。複数のプロジェクトの追加

enter image description here

enter image description here

+0

を信じています。 package.json。あなたが主に今持っているものは、2つの異なるプロジェクトです。なぜ車輪を再構築するのですか? 2つの異なるクイックスタートを使用してください! – Gary

+0

package.jsonを1つだけ保持し、rootでbaseDir paramを実行するプロジェクトの名前に変更します。 また、tsconfig.jsonもルートに保持する必要があります。 – Vishal

+1

はい、2つの異なるプロジェクトの終わりです。なぜあなたはそれをやりますか?あなたの質問は、すべてのリソースの複製をやめる方法でした。それは維持できない解決策です。ノードモジュールがリソース複製であり、アプリケーションのコードリソースが重複していないと、あまりにも多くの未知の時間が経路を変更することになります。 2つのプロジェクトを作成するだけです。 ng-cli 130 mbの依存関係であっても、プロジェクトのクリーン度があり、今日のgbとtbの世界では、MBはあなたの時間よりも安いです。 – Gary

関連する問題