2016-12-18 4 views
2

ember-engines0.4.0,ember-cli2.10.0というスタンドアロンのルーティング可能なエンジンを作成しました。エバーエンジンのセットアップ方法は?

私はエンジンのインデックスにルート(/thingy/)を呼び出す場合、私はこのエラーを取得する:

this.mount('thingy-frontend', { as: 'thingy', path: 'thingy' }); 

エンジンのApp routes.js

this.route('index', { path: '/' }); 

のApp router.jsの消費

Assertion Failed: Asset manifest does not list any available bundles.

をザエンジンは、ember-cliアプリのディレクトリにシンボリックリンクでインストールされています。 (See here why)。

this.mount('thingy-frontend', { as: 'thingy' }); 

エンジンのApp routes.js

this.route('index', { path: 'new' }); 

IのApp router.jsを消費私はそれが動作するかどうかをテストするためにルートを変更しようとした楽しみのためだけに

...

/thingy/newと呼ばれ、UnrecognizedURLErrorがあります。私はルートパスを呼び出す場合の代替は、私はエンジンindex.jsconsole.log('...');を配置する場合、私は任意の出力を参照することはできません。またAssertion Failed: Asset manifest does not list any available bundles.

を取得します。それはまったく読み込まれていないようです。

セットアップは、公式のREADMEと公式のサンプルreposに触発されました。

このEmberエンジンの設定を修正する方法はありますか?

あなたはGitHubの上のリポジトリを見つけることができます。

答えて

5

問題を解決できました。そこいくつかの問題となっていると、私たちは何をしたかあなたと共有されます:

1.(DEV-依存関係だけではなく)依存関係として

を燃えさし-エンジンを追加あなたはpackage.jsonで依存関係としてember-enginesを追加する必要がありますアプリとエンジンの両方

"dependencies": { 
    "ember-cli-htmlbars": "^1.0.10", 
    "ember-cli-babel": "^5.1.7", 
    "ember-data": "^2.10.0", 
    "ember-engines": "0.4.0" 
} 

npm installに忘れてはいけない。だから我々はへ package.jsonを変更します。

2.それは公共および私たちの場合と同様にnode_modulesにシンボリックリンクではない場合でも、あなたはpackage.jsonにエンジンを追加する必要がpackage.json

に実際のエンジンを追加します。

私たちの場合、これは"thingy-frontend": "*"でした。

npm installを忘れないでください。

3.チェックシンボリックリンク名

我々の場合にはシンボリックリンクは、エンジンのレポの名前の代わりに、実際のエンジン名を持っていました。それは動作しません。 シンボリックリンクの名前をthingy-frontend(エンジンの名前はindex.js)に変更しました。

4.あなたがaddon/engine.jsにしてapp/resolver.js両方がember-resolverを使用することを、確認する必要があり、右リゾルバ

5.アセットマニフェストの読み込みに失敗しました。

これはおそらくember-enginesのバグです。詳細は、問題を参照してください。https://github.com/ember-engines/ember-engines/issues/282#issuecomment-268834293

手動<head><meta /> -Tagを追加することで問題を回避することができます(上記のGitHubの発行のリンクを参照してください)

Michael Donaldsonに感謝を!

私は互換性がないも問題になる可能性が ことを追加したい
3

私はアプリのパッケージを消費するからあなたEngineアプリケーションへの参照を見つけることができません.json。私はあなたが消費するpackage.json Engine appに追加するべきだと思います。

"ember-addon": { 
    "paths": [ 
     "lib/ember-chat-engine" 
    ] 
} 

ないで、レポ - アドオン、彼らが持っている通常のモジュール用の場合:

package.jsonに、彼らが持っていることを私はエンバー・エンジン・デモで見つけることができるエンジン - 中 - レポ - アドオンのために
"dependencies": { 
    "ember-data": "^2.6.0", 
    "ember-engines": "dgeb/ember-engines#v0.2", 
    "ember-blog-engine": "dgeb/ember-blog-engine" 
    }, 

ember-blog-engineに注目してください。ここにはpackage.jsonの完全な参照があります。

ただし、ご使用のember-engines-appアプリpackage.jsonには エバーエンジンのエンジン名が記載されていません。

Emberはpackage.jsonリストのアドオンを処理するので、そこでエンジンアドオンを参照する必要があります。さもなければ、あなたはEmber CLI環境で実行されるそのようなパッケージからコードの行を得ることはありません。

消費アプリapp.jsonにember-engines-engineを追加してください。

+0

'ember generate in-repo-addon'ではなく、既存のエンジンのファイルをコピーしてIn-Repo-Addonを作成したので、 – givanse

0

...

エンバー・エンジンは、実験的であるとエンバーとエンバー-CLIのマスターブランチに対して開発されているとして、あなたはを使用していることを確認してくださいcompatible versions

関連する問題