私の質問には2つの側面があります。解決するためのエラーは、カスタムルート再利用戦略を使用すると、実装を使用して角度ルータクラスRouteReuseStrategyをオーバーライドするときに戦略がトリガされず、キーワードを使用すると以下の例外が発生します。角度フレームワーククラスを拡張するときのエラーRouteReuseStrategy
UMSClient: TypeError例外:プロトタイプが唯一のオブジェクトまたはnullであってもよいオブジェクト:評価で__extendsでsetPrototypeOfで不定 () (http://localhost:8000/app/UMSClient/com/ipc/ums/modules/shared/CustomRouteReuse.service.js:8:13) (http://localhost:8000/app/UMSClient/com/ipc/ums/modules/shared/CustomRouteReuse.service.js:35:17) で(http://localhost:8000/app/UMSClient/com/ipc/ums/modules/shared/CustomRouteReuse.service.js:54:14)を実行 読み込みエラーhttp://localhost:8000/app/main.js
import { RouteReuseStrategy,ActivatedRouteSnapshot,DetachedRouteHandler}
from '@angular/router';
export class CustomRouteReuseStrategy extends RouteReuseStrategy {
shouldDetach(route: ActivatedRouteSnapshot): boolean { return false; }
store(route: ActivatedRouteSnapshot, detachedTree: DetachedRouteHandle): void {}
shouldAttach(route: ActivatedRouteSnapshot): boolean { return false; }
retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle { return null ; }
shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean {
console.log("inside shouldReuseRoute...");
return future.routeConfig === curr.routeConfig ;
}
}
私はこれが私の編集と戦略の構築に関連していると感じています。私はgulpとsystem jsで私の前で開発されたフレームワークを使用します。アプリをwebpackベースの角度cliにコピーすると、問題が発生せず、ルート戦略が適切にトリガーされます。私のビルド設定の
詳細:
gulp.task( "コンパイル"、()=> { せtsResult = gulp.src( "アプリ/ *をコンパイルするがぶ飲みを使用して
*/*。ts ") .pipe(sourcemaps.init()) .pipe(tsc(tsProject)); return tsResult.js .pipe(sourcemaps.write("。 "、{sourceRoot: '/ app '})) .pipe(gulp.dest( "build/app")); }); { "角度/共通@": "〜4.3.1"、
"角度/コンパイラ@":「〜4.3.1
パッケージJSONは、
"依存関係" であります"
"角度/コア@": "〜4.3.1"、
"角度/フォーム@": "〜4.3.1"、
"角度/ HTTP @":" 〜4.3.1 "、
012角度/ルータ@ "〜4.3.1"、」: "角度/プラットフォームブラウザ@"
: "〜4.3.1"、
"角度/プラットフォーム - ブラウザ - ダイナミック@" ": "〜4.3.1"、
"角度@ /アップグレード": "〜4.3.1"、
"@ angular2-材料/タブ":"^2.0.0-alpha.8- 2 "、
" @ ng-bootstrap/ng-bootstrap ":"^1.0.0-alpha.9 "、
は "angular2・イン・メモリー・ウェブAPI": "0.0.20"、
"ブートストラップ": "^ 3.3.6"、
"コア-JS":「^ 2.4。1" 、
"NG2-ブートストラップ": "^ 1.1.16-11"、
"NG2-BS3モーダル": "^ 0.10.4"、
「NG2-datetime-ピッカー ": "^ 0.9.8"、
"NGX-ブートストラップ: ": "" " - メタデータを反映^ 2.0.0-beta.8"
、"^0.1.3"、
"rxjs": "^ 5.2.0"、
"systemjs": "^ 0.20.19"、
"TSD": "^ 0.6.5"、
"アンダースコア": "^ 1.8.3"、
「ゾーン。 JS ": "^ 0.8.5"
}、
"devDependencies":{
"同時": "^ 3.5.1"、
"デル": "^ 3.0.0"、
"がぶ飲み": "^ 3.9.1"、
"-sourcemapsを飲み込む": "^ 2.6.1"、
「ゴクゴク-tslint ": "^ 8.1.2"、
"飲み込む-typescriptですが: ": "" "^ 3.2.3"、
" LITE-サーバー^ 2.2.2"、
" 「tslint」:「〜5.8.0」、
"typescriptです": "〜2.6.1"、
"タイピング": "^ 2.1.1"、
"のTS-ノード": "〜3.3.0"
tsconfig.json:
{
"compilerOptions": {
"outDir": "build/app",
"target": "es5",
"module": "system",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false
},
"exclude": [
"gulpfile.ts",
"node_modules"
]
}私の具体的な質問は、この実行時例外の原因となる依存関係がわかりません。グルーフビルドの手順の知識を持つ誰かが、私は問題を整理するために私を案内してください。
私は、この例外の解決策としてスタックオーバーフローを参照しました。すべての議論は、クラス階層の順序でいくつかの問題があることを示しています。私の場合、100%がwebpack angular cliプロジェクトでうまく動作する角度フレームワーククラスを使用しています。
お時間をいただきありがとうございます。