Búsqueda de sitios web

angular - TsickleCompilerHost da error al ejecutar ngc en una biblioteca de Angular4


Actualmente estoy trabajando en la exportación de una biblioteca de componentes de Angular 4 en el formato descrito por el Angular Package Format. Para simplificar esto, generé una configuración predeterminada usando este generador de Yeoman. Al principio todo funcionó perfectamente y pude generar una biblioteca funcional que podía importar en otra aplicación de Angular. Luego actualicé nuestros archivos de biblioteca después de obtener todos los cambios más recientes e intenté generar un nuevo paquete. Sin embargo, esta vez la compilación falló, con un error que no pude vincular a uno de los cambios que obtuve.

El mensaje:

[13:33:05] Starting 'ngc'...
TypeError: Cannot read property 'path' of undefined
    at TsickleCompilerHost.getSourceMapKeyForSourceFile (C:\Projects\App\lib\node_modules\tsickle\build\src\tsickle_compiler_host.js:120:65)
    at TsickleCompilerHost.downlevelDecorators (C:\Projects\App\lib\node_modules\tsickle\build\src\tsickle_compiler_host.js:202:52)
    at TsickleCompilerHost.getSourceFile (C:\Projects\App\lib\node_modules\tsickle\build\src\tsickle_compiler_host.js:94:29)
    at findSourceFile (C:\Projects\App\lib\node_modules\typescript\lib\typescript.js:67909:29)
    at processSourceFile (C:\Projects\App\lib\node_modules\typescript\lib\typescript.js:67840:27)
    at C:\Projects\App\lib\node_modules\typescript\lib\typescript.js:67950:17
    at Object.forEach (C:\Projects\App\lib\node_modules\typescript\lib\typescript.js:1449:30)
    at processReferencedFiles (C:\Projects\App\lib\node_modules\typescript\lib\typescript.js:67948:16)
    at findSourceFile (C:\Projects\App\lib\node_modules\typescript\lib\typescript.js:67933:21)
    at processImportedModules (C:\Projects\App\lib\node_modules\typescript\lib\typescript.js:68056:25)
Compilation failed
[13:33:13] 'ngc' errored after 7.52 s

¿Alguien podría señalar qué puede causar este error para que tenga una idea de qué debería buscar?

Respuesta #1

Resultó que una ruta en un comentario // <reference path="some/path" /> se estaba reemplazando durante la compilación, lo que hacía que apuntara a un archivo inexistente. Eso provocó que TsickleCompilerHost no encontrara un archivo, lo que a su vez llevó a un archivo fuente indefinido. De ahí el mensaje TypeError: Cannot read property 'path' of undefined.