3

2 つの emberjs プロジェクトがあり、どちらも基本的なプロジェクト構造として EAK を使用しています。これら 2 つのプロジェクト間で共有したい共通のコードがいくつかあります: テンプレート、ビュー (および関連するスタイルシート)、いくつかのユーティリティ クラスなどです。

  1. 共通コードを別の eak プロジェクトに入れる必要がありますか?
  2. プロジェクトの依存関係を管理するために、いくつかのパッケージ マネージャー (bower など) を使用する必要がありますか?
  3. EAK はカスタム リゾルバーを使用して特定のディレクトリ (ビュー、コントローラーなど) の下にある ember クラスを検索します。共通コードをこれらのディレクトリにコピーするか、リゾルバーを拡張して独自の検索ロジックを作成する必要がありますか?

正しい方向へのプッシュは、途方もない助けになります! ありがとうございました。

4

2 に答える 2

1

ディレクトリをフォールトバックとして追加するために解決済みを拡張することは完全に見つかりました。サンプルコードは次のとおりです。

var appPath = "apps/ordering/";
var resolver = Ember.DefaultResolver.extend({
  resolveTemplate: function (parsedName) {
    parsedName.fullNameWithoutType = appPath + parsedName.fullNameWithoutType;
    # fallback to raw templates (used for compatibility with non-Ember/emblem templates)
    return this._super(parsedName) ||
      Ember.TEMPLATES[parsedName.fullNameWithoutType + ".raw"]
  }
});

基本的にthis._super、異なるパスを正しい順序で呼び出して、フォールトバックを行うことができます。

お役に立てれば

于 2014-02-25T06:26:45.290 に答える
0

同様の状況があります。私たちは Yeoman で足場を組みました。つまり、依存関係のためのバワーと構築のためのうなり声があります。これが EAK にどのように適用されるかはわかりません。

私たちの決定は、共通のコードを別のプロジェクトに保持することでした。すべての依存関係を処理するのは少し複雑で、最終的には、共通プロジェクトが依存関係として追加されたときに、必要なものすべて (多かれ少なかれ) が共通プロジェクトから確実に含まれるようにするために、面倒なビルド作業を行う必要がありました。 bower を介して子プロジェクトに。Bower のような依存関係マネージャーは、子プロジェクト (コンシューマーなど) を共通コードの特定のバージョンに固定し、その中で新しい機能に取り組んでいるため、非常に重要です。

于 2014-02-26T18:21:36.933 に答える