我正在使用Angular2并使用AOT预编译代码。
当我在Component< templateUrl中使用相对路径时,我能够编译代码。
但是在组件的templateUrl
中使用绝对路径时,编译失败了编译命令:"node_modules/.bin/ngc" -p tsconfig-aot.json
使用绝对templateUrl:
时出现以下错误错误:编译失败。找不到资源文件:{Absolute htmlUrl 路径} 在ModuleResolutionHostAdapter.readResource(C:\ Dipendra \ stash-workspace \ angular2Aot \ WebContent \ node_modules \ @angular \ compiler-cli \ src \ compiler_host.js:291:19) 在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) 在DirectiveNormalizer._fetch(C:\ Dipendra \ stash-workspace \ angular2Aot \ WebContent \ node_modules \ @angular \ compiler \ bundles \ compiler.umd.js:13753:47) 在DirectiveNormalizer.normalizeTemplateAsync(C:\ Dipendra \ stash-workspace \ angular2Aot \ WebContent \ node_modules \ @angular \ compiler \ bundles \ compiler.umd.js:13799:25) 在DirectiveNormalizer.normalizeTemplate(C:\ Dipendra \ stash-workspace \ angular2Aot \ WebContent \ node_modules \ @angular \ compiler \ bundles \ compiler.umd.js:13771:48) 在CompileMetadataResolver._loadDirectiveMetadata(C:\ Dipendra \ stash-workspace \ angular2Aot \ WebContent \ node_modules \ @angular \ compiler \ bundles \ compiler.umd.js:18074:79) 在C:\ Dipendra \ stash-workspace \ angular2Aot \ WebContent \ node_modules \ @angular \ compiler \ bundles \ compiler.umd.js:18250:58 at Array.forEach(native) 在CompileMetadataResolver.loadNgModuleDirectiveAndPipeMetadata(C:\ Dipendra \ stash-workspace \ angular2Aot \ WebContent \ node_modules \ @angular \ compiler \ bundles \ compiler.umd.js:18249:45) 编译失败
答案 0 :(得分:1)
Angular AOT编译器要求模板文件作为组件位于SAME文件夹中,即使JIT编译器不需要这样做。
对于设计师而言,这是一个非常糟糕的决定。答案是重新设计整个应用程序,以便模板文件与组件位于同一文件夹中。
有几个假设的工作,但我不清楚他们是否真的有用。如果我成功,我会更新这篇文章。