Angular 9库生成错误:未能找到节点的导出名称

问题描述 投票:0回答:1

在我的Angular 9(最新版本)中,我使用了几个自己的库。这些库使用“ paths”属性包含在tsconfig.json中,然后在应用程序中使用。

我创建了一个新的库,该库使用了Angular Cdk库中的大量CdkPortal,在编译导入该库的根应用程序时,我收到以下错误消息。在此之前,我会编译库本身,并且没有构建错误:

    Compiling cap-gui-components : module as esm5
Error: Error on worker #1: Error: Failed to find exported name of node (CapGuiSettingsDialogContainerComponent 

与Cdk动态加载的所有组件都将生成此错误消息。从理论上讲,这些组件不需要在index.ts文件中导出,因为它们仅在库本身中使用。如果导出它们,则不会收到错误消息。

完整错误消息:

ompiling cap-gui-components : module as esm5
Error: Error on worker #1: Error: Failed to find exported name of node (CapGuiSettingsDialogContainerComponent = /** @class */ (function () {
    // ************************************************************************************************
    /** Constructor */
    ...code...

in 'C:/Users/Arbeit/dev/CaptureWebApplications/dist/cap-gui-components/fesm5/cap-gui-components.js'.
    at Object.findExportedNameOfNode (C:\Users\Arbeit\dev\CaptureWebApplications\node_modules\@angular\compiler-cli\src\ngtsc\imports\src\find_export.js:35:19)
    at LogicalProjectStrategy.emit (C:\Users\Arbeit\dev\CaptureWebApplications\node_modules\@angular\compiler-cli\src\ngtsc\imports\src\emitter.js:228:38)
    at ReferenceEmitter.emit (C:\Users\Arbeit\dev\CaptureWebApplications\node_modules\@angular\compiler-cli\src\ngtsc\imports\src\emitter.js:71:44)
    at Object.toR3Reference (C:\Users\Arbeit\dev\CaptureWebApplications\node_modules\@angular\compiler-cli\src\ngtsc\annotations\src\util.js:192:31)
    at NgModuleDecoratorHandler._toR3Reference (C:\Users\Arbeit\dev\CaptureWebApplications\node_modules\@angular\compiler-cli\src\ngtsc\annotations\src\ng_module.js:417:31)
    at C:\Users\Arbeit\dev\CaptureWebApplications\node_modules\@angular\compiler-cli\src\ngtsc\annotations\src\ng_module.js:196:83
    at Array.map (<anonymous>)
    at NgModuleDecoratorHandler.analyze (C:\Users\Arbeit\dev\CaptureWebApplications\node_modules\@angular\compiler-cli\src\ngtsc\annotations\src\ng_module.js:196:48)
    at NgccTraitCompiler.TraitCompiler.analyzeTrait (C:\Users\Arbeit\dev\CaptureWebApplications\node_modules\@angular\compiler-cli\src\ngtsc\transform\src\compilation.js:345:40)
    at analyze (C:\Users\Arbeit\dev\CaptureWebApplications\node_modules\@angular\compiler-cli\src\ngtsc\transform\src\compilation.js:297:58)
    at ClusterMaster.onWorkerMessage (C:\Users\Arbeit\dev\CaptureWebApplications\node_modules\@angular\compiler-cli\ngcc\src\execution\cluster\master.js:168:27)
    at C:\Users\Arbeit\dev\CaptureWebApplications\node_modules\@angular\compiler-cli\ngcc\src\execution\cluster\master.js:52:95
    at ClusterMaster.<anonymous> (C:\Users\Arbeit\dev\CaptureWebApplications\node_modules\@angular\compiler-cli\ngcc\src\execution\cluster\master.js:248:57)
    at step (C:\Users\Arbeit\dev\CaptureWebApplications\node_modules\tslib\tslib.js:139:27)
    at Object.next (C:\Users\Arbeit\dev\CaptureWebApplications\node_modules\tslib\tslib.js:120:57)
    at C:\Users\Arbeit\dev\CaptureWebApplications\node_modules\tslib\tslib.js:113:75
    at new Promise (<anonymous>)
    at Object.__awaiter (C:\Users\Arbeit\dev\CaptureWebApplications\node_modules\tslib\tslib.js:109:16)
    at EventEmitter.<anonymous> (C:\Users\Arbeit\dev\CaptureWebApplications\node_modules\@angular\compiler-cli\ngcc\src\execution\cluster\master.js:242:32)
    at EventEmitter.emit (events.js:311:20)
An unhandled exception occurred: NGCC failed.
See "C:\Users\Arbeit\AppData\Local\Temp\ng-dpI2TJ\angular-errors.log" for further details.

为什么我需要导出这些组件?还有没有其他方法可以构建该库,而无需导出这些组件?

angular tsconfig angular-cdk angular-library
1个回答
0
投票

甚至在一小时后,我也找到了解决方案。我需要在tsconfig.lib.prod.ts中启用常春藤。现在,该库可以使用Ivy进行编译,目前尚不推荐这样做,但是一切正常。

© www.soinside.com 2019 - 2024. All rights reserved.