Ember.jsはデフォルトで「エラー」ルートを設定していますが、route-recognizerは重複ルートを許可しなくなりました。
https://github.com/tildeio/route-recognizer/blame/5d54688f04273d3a921470b903a36266dddcdaf2/dist/route-recognizer.js#L525 -L531
これを行うと、コンソールにエラーのある空白のページが表示されます。
Uncaught Error: You may not add a duplicate route named `error`
デフォルトの「エラー」ルートはここに設定されています。
https://github.com/emberjs/ember.js/blob/10857fd98008bb47bd63bfe3d21b0fc224a197a5/packages/ember-routing/lib/system/dsl.js#L49 -L50
ember g route error
を使用してerror
ルートを処理しようとすると、テストできます。
この機能は2.9で正常に機能しました。
@ diamondo25ツイドルで再現できますか?
私もこれを見ていますが、昨日からの最新のベータ版で見たのを覚えていません
スジは通ってるようだ。 これは、私が行ったroute-recognizer
変更によるものです。 ユーザーがすでに作成している場合は、デフォルトの作成をロックアウトする必要があります。 (私は修正する方法を知っています、それに到達します。)
クロスリンク: https :
@nathanhammondとても早く修正してくれてありがとう! @rwjblue 「バグ」とラベルを付けたので、おそらくこの問題は次の2.10.1リリースで解決できるでしょう。
それは修正ではありません、@ pixelhandler! そこでバグが発生しました。 😜これは修正されたらポイントリリースが必要ですが、ルーターの作業に戻る前に、他に対処すべきことがいくつかあります。 (対処すべき未解決の問題が約5つあります。)
この男にステータスはありますか?
Bustleアプリを2.10にアップグレードするとこの問題が発生します。ルートのerror
ルートを別の名前にリファクタリングするか、2.10へのアップグレードを延期する必要があります。
このバグの状況にも関心があります。 当面は2.10へのアップグレードを延期しております。
error
ルートを明示的に登録せず、エラーテンプレート、ルートなどをそのままにしておくことで、これを回避できることを望んでいました。 私はそれを試し、見つけました:
テンプレート、ルート、コントローラーなどをそのままにして、明示的に処理されたエラーケースに対して同じテンプレートを指すカスタムエラールートを登録できるのではないかと考えています。 たぶん、これは私のカスタムテンプレートでキャッチされたエラーとキャッチされなかったエラーの両方を処理するでしょう。
@ nathanhammond-上記について何か考えはありますか? 公式の修正を待つだけのハッカーの価値はありますか?
気にしないで :(
上記の提案では、引き続きerror
マッピングが必要であり、このバグが発生します。
処理したエラーのカスタムルートを作成し、 error
テンプレートで同じエラーコンポーネントを使用するだけです。
修正が保留されている他の唯一のアプローチのようです。
CC: @nathanhammond
これはemberv2.12.0-beta.1で修正されていることに気づきましたが、この修正を2.11リリースにバックポートする機会はありますか? 2.12ベータ版以降、多数の新しい問題が発生します。
2.12ベータ版以降、多数の新しい問題が発生します。
ベータサイクルで見つけた問題を報告してください!
この修正を2.11リリースにバックポートする機会はありますか?
はい、それは良い考えだと思います。
2.11.1で修正
これはbeta.1とは異なる方法で修正されましたか? 2.11.1を試してみたところ、ベータ版ではなく、「hotel.error」に関する重複ルートエラーが発生しました。
@ Glennvd-はい、それらはルート認識機能の異なるバージョンです(2.11の場合は0.2.9、2.12の場合は0.3)。 どういうわけかこれをいじった可能性があります。 2.11で取得したエラーとスタックトレースを共有できますか? また、いじりやデモレポの可能性はありますか? 何が悪かったのかがわかったら、2.11.2をリリースできてうれしいです。
@rwjblueここに正しい残り火バージョンに変更する必要がありますhttps://ember-twiddle.com/e4b8412bf5629483f94276a001598571
以下の完全なスタックトレース(私自身のアプリから)。
add (ember.debug.js:55618)
(anonymous) (ember.debug.js:57247)
(anonymous) (ember.debug.js:55191)
eachRoute (ember.debug.js:55179)
eachRoute (ember.debug.js:55177)
eachRoute (ember.debug.js:55177)
map (ember.debug.js:55190)
map (ember.debug.js:57244)
_initRouterJs (ember.debug.js:27511)
setupRouter (ember.debug.js:27606)
startRouting (ember.debug.js:27592)
startRouting (ember.debug.js:2887)
didBecomeReady (ember.debug.js:3867)
invoke (ember.debug.js:337)
flush (ember.debug.js:405)
flush (ember.debug.js:529)
end (ember.debug.js:599)
run (ember.debug.js:722)
join (ember.debug.js:744)
run.join (ember.debug.js:22286)
(anonymous) (ember.debug.js:22349)
mightThrow (jquery.js:3570)
process (jquery.js:3638)
nrWrapper ((index):97)
エラーは同じですUncaught Error: You may not add a duplicate route named
hotel.error .
@rwjblue実行中
grep --recursive "RouteRecognizer.VERSION" node_modules/ember-source
戻り値
node_modules/ember-source/dist/ember.debug.js:RouteRecognizer.VERSION = '0.2.8';
node_modules/ember-source/dist/ember.js:RouteRecognizer.VERSION = '0.2.8';
node_modules/ember-source/dist/ember.prod.js:RouteRecognizer.VERSION = '0.2.8';
ええ、問題は[email protected]が0.2.8のdist出力でリリースされたこと
@rwjblue 、
何か必要な場合はお知らせください。
OK、更新されたdist出力で[email protected]をリリースしてから、リリースブランチ(https://github.com/emberjs/ember.js/commit/6c7e6950f127aa31912b5729971703c0c9615655)にぶつかり、ビルド出力で確認しました(https://github.com/components/ember/commit/4a9c7361f4f546daf3ad342da6d196b5b4b6bf20内)。
次に、上記の@Glennvdが共有するひねりでrelease
ブランチを使用すると、アサーションが発生しない(そしてアプリが起動する)ことを確認しました。
他の誰かがここで私をサニティチェックできる場合は、2.11.2をリリースできます...
その上に。
@rwjblueは私の
私は自分のプロジェクトを構築しようとしています
devDependencies: {
// ...
"ember-source": "git://github.com/emberjs/ember.js.git#6c7e6950f127aa31912b5729971703c0c9615655"
// ...
しかし、それは失敗します
$ ember build
⠋ Building
Cannot find module 'node_modules/ember-source/dist/ember-template-compiler.js'
私は何が間違っているのですか:)?
@gmaliar ember-source
にはリポジトリにビルドアーティファクトがないため、bowerタグを使用するか、emberをローカルで複製、ビルド、リンクする必要があります。
ありがとう@locks 、
@rwjblue動作していることを確認できます。
これは閉じることができ、 2.11.2
正しく機能します。
確認していただきありがとうございます。
最も参考になるコメント
2.11.1で修正