2017-03-02 4 views
2

Ich verwende Angular2 und Pre-Compiling-Code mit AOT.Angular2 - Kompilieren zu AOT mit absoluten Pfad in der Komponente templateUrl

Ich bin in der Lage, Code zu kompilieren, wenn ich relativen Pfad in Components TemplateUrl verwende.

Aber Kompilierung fehlschlägt, wenn die Verwendung von absolutem Pfad in der Komponente templateUrl

Compilation Befehl: "node_modules/.bin/ngc" -p tsconfig-aot.json

ich unten Störung erhalten, während absolute templateUrl mit:

Error: Compilation failed. Resource file not found: {Absolute htmlUrl path} at ModuleResolutionHostAdapter.readResource (C:\Dipendra\stash-workspace\angular2Aot\WebContent\node_modules\@angular\compiler-cli\src\compiler_host.js:291:19) at CompilerHost.loadResource (C:\Dipendra\stash-workspace\angular2Aot\WebContent\node_modules\@angular\compiler-cli\src\compiler_host.js:230:85) at Object.get (C:\Dipendra\stash-workspace\angular2Aot\WebContent\node_modules\@angular\compiler\bundles\compiler.umd.js:26374:111) at DirectiveNormalizer._fetch (C:\Dipendra\stash-workspace\angular2Aot\WebContent\node_modules\@angular\compiler\bundles\compiler.umd.js:13753:47) at DirectiveNormalizer.normalizeTemplateAsync (C:\Dipendra\stash-workspace\angular2Aot\WebContent\node_modules\@angular\compiler\bundles\compiler.umd.js:13799:25) at DirectiveNormalizer.normalizeTemplate (C:\Dipendra\stash-workspace\angular2Aot\WebContent\node_modules\@angular\compiler\bundles\compiler.umd.js:13771:48) at CompileMetadataResolver._loadDirectiveMetadata (C:\Dipendra\stash-workspace\angular2Aot\WebContent\node_modules\@angular\compiler\bundles\compiler.umd.js:18074:79) at C:\Dipendra\stash-workspace\angular2Aot\WebContent\node_modules\@angular\compiler\bundles\compiler.umd.js:18250:58 at Array.forEach (native) at CompileMetadataResolver.loadNgModuleDirectiveAndPipeMetadata (C:\Dipendra\stash-workspace\angular2Aot\WebContent\node_modules\@angular\compiler\bundles\compiler.umd.js:18249:45) Compilation failed

Antwort

1

Angular AOT-Compiler erfordern die Vorlage Dateien im Ordner SAME als Komponente, obwohl dies beim JIT-Compiler nicht erforderlich ist.

Es war eine unglaublich schlechte Entscheidung seitens der Designer. Die Antwort ist, dass Sie Ihre gesamte Anwendung so umgestalten, dass sich die Vorlagendateien im selben Ordner wie die Komponente befinden.

Es gibt mehrere angenommene Arbeitsumgebungen, aber ich bin nicht klar, ob sie wirklich funktionieren. Ich werde diesen Beitrag aktualisieren, wenn ich erfolgreich bin.

Verwandte Themen