0

縮小すると、famous-angular でいくつかの問題が発生します。

私が昨日提出したいくつかの PR は、これを修正する試みでしたが、これらは問題を解決していないようです。

縮小せずにビルドすると、すべてが期待どおりに機能します。

縮小してビルドし、アプリ モジュールから「famous.angular」への依存を削除すると、アプリは正常に角度のみに低下するため、レイアウトは中断されますが、基になる角度アプリは期待どおりに動作し、エラーは発生しません。

縮小してビルドし、アプリ モジュールが「famous.angular」に依存している場合、アプリはまったく読み込まれず、次のエラーが発生します。

Uncaught Error: [$injector:modulerr] Failed to instantiate module app due to:
Error: [$injector:modulerr] Failed to instantiate module famous.angular due to:
Error: [$injector:unpr] Unknown provider: t
http://errors.angularjs.org/1.2.23/$injector/u...<omitted>...2)

この方法を採用することで、どの関数が正しく縮小されておらず、Angular の依存性注入につまずいているかを特定できました。

function LocationHashbangInHtml5Url(appBase, hashPrefix) { /* ... */ }

これはコアAngularファイルangular.jsにあります - 、実際に他のインスタンスでは正しく縮小されます。したがって、アプリモジュールに「famous.angular」を含めると、エラーが発生する理由がわかりません。

ここで何が問題なのか知っている人はいますか?


問題のデモ:

git clone git@github.com:bguiz/browserify-gulp-starter.git
cd browserify-gulp-starter
npm install famous
bower install --save angular angular-route famous-angular
# edit gulpoptions.js
# appName: 'app',
# appFolder: './src-famousangular/app/',
gulp serve-dist
4

1 に答える 1

0

$injectすべてのシナリオをキャッチしたと考えて、これらの 2 つの PR を以前に有名な角度に送信しました。

私が見逃していた 3 番目のものがあったことが判明し、パッチを提出しました。

上記の私の質問では、正しく縮小されていない関数であると述べfunction LocationHashbangInHtml5Url(appBase, hashPrefix) { /* ... */ }ました。angular/angular.jsこれは誤りであり、犯人は実際には のプロバイダーでしたfamous-angular/src/scripts/directives/fa-input.js


好奇心旺盛な方のために、上記を理解するために私が使用したプロセスを次に示します。追加のボーナスとして、縮小された AngularJs アプリで依存性注入エラーをデバッグするときに使用する追加の手法をたまたま発見しました。

上記でリンクした手法 ( https://stackoverflow.com/a/25126490/194982 )が常に正しく機能するとは限らないことがわかりました。

invoke()最終的にうまくいったのは、そのテクニックで説明されているように、関数に到達するまで実行スタックをトラバースすることでした。次に、 のみを検査する代わりに、開発者ツールfnのタブを見てScope Variables、関数であるすべてのスコープ メンバーを検査します。

これにより網が広くなり、検査が必要なものが増えます。しかし、この場合は必要であり、他の場合にも当てはまるのではないかと思います.

于 2014-09-03T04:58:02.520 に答える