2017-03-02 1 views
2

J'utilise Angular2 et le code de précompilation en utilisant AOT.Angular2 - Compiler en AOT en utilisant le chemin absolu dans le composant templateUrl

Je suis capable de compiler du code lorsque j'utilise un chemin relatif dans templateUrl de Component.

Mais la compilation échoue lorsque vous utilisez un chemin absolu dans templateURL de composant

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

Je reçois ci-dessous erreur lors de l'utilisation templateURL absolue:

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

Répondre

1

compilateur angulaire AOT nécessite le modèle Les fichiers doivent être dans le même dossier que le composant, même si cela n'est pas requis avec le compilateur JIT.

C'était une décision incroyablement mauvaise de la part des concepteurs. La réponse consiste à reconcevoir l'ensemble de votre application afin que les fichiers modèles se trouvent dans le même dossier que le composant.

Il y a plusieurs manipulations supposées, mais je ne sais pas si elles fonctionnent vraiment. Je mettrai à jour ce post si j'ai réussi.