【问题标题】:Angular 7 - Custom library - cannot export simple classAngular 7 - 自定义库 - 无法导出简单类
【发布时间】:2020-03-30 22:41:18
【问题描述】:

我创建了一个自定义库,我发布了它以在我的应用程序中使用

import { AccordionComponent } from 'my-angular-lib';
import { AccordionItemComponent } from 'my-angular-lib';

这两个组件确实包含并正确显示

但是,当我添加一个不是指令/组件的简单类时..

export class Tools {
...
}

它只是在我的库模块中找不到它在我编译我的应用程序时

ERROR in src/app/app.component.ts(10,10): error TS2305: Module '"...../node_modules/my-angular-lib/my-angular-lib"' has no exported member 'Tools'.

虽然我在public-api.ts中声明了,但还是不能使用

export * from './lib/helpers/tools.class';

我也尝试将它添加到主库模块中,但它抱怨它没有 @Directive/@Component 标签

这就是我在我的应用程序中使用它的方式

import { Tools } from 'my-angular-lib';

所有其他组件都可以使用,并且可以在我的库的名称空间中找到,没有任何问题

我已经阅读了很多帖子,但没有人给我另一个答案来解决这个问题

感谢您对此的任何帮助

[编辑:]

如果我尝试将其添加到导入/导出中,我会得到

 Please add a @Pipe/@Directive/@Component annotation.

为什么我不能直接导出?

my-angular-lib.module.ts

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';  
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';

import { AccordionComponent } from './widgets/accordion/accordion.component';
import { AccordionItemComponent } from './widgets/accordion/accordionItem.component';

import { PaginationComponent } from './widgets/pagination/pagination.component';
import { PaginationService } from './widgets/pagination/pagination.service';

import { PasswordComplexityComponent } from './widgets/passwordComplexity/passwordComplexity.component';

import { UpDownComponent } from './widgets/updown/updown.component';

import { Tools } from './helpers/tools.class';

@NgModule({
  declarations: [
      AccordionComponent,
      AccordionItemComponent,
      PaginationComponent,
      PasswordComplexityComponent,
      UpDownComponent,
      Tools
  ],
  imports: [
      CommonModule,
      FormsModule
      ],
  exports: [
      AccordionComponent,
      AccordionItemComponent,
      PaginationComponent,
      PasswordComplexityComponent,
      UpDownComponent,
      Tools
  ],
  providers:[PaginationService]
})
export class MyAngularLibModule { }

public-api.ts

export * from './lib/my-angular-lib.module';

export * from './lib/widgets/accordion/accordion.component';
export * from './lib/widgets/accordion/accordionItem.component';

export * from './lib/widgets/pagination/pagination.component';
export * from './lib/widgets/pagination/pagination.service';

export * from './lib/widgets/passwordComplexity/passwordComplexity.component';

export * from './lib/widgets/updown/updown.component';

export * from './lib/helpers/tools.class';

【问题讨论】:

  • 添加export * from './lib/helpers/tools.class';后,你又建了吗?
  • my-angular-lib而不是e5-angular-lib导入正常吗??
  • 已更正,(代码为专有)
  • 是的,我重建了它

标签: angular


【解决方案1】:

好吧,我终于成功了

不太确定出了什么问题,我用新的 package.json 版本重新编译了库,重新发布了它

突然间我的班级被发现了

奇怪,因为我昨天做了无数次

【讨论】:

    【解决方案2】:

    在我的情况下,删除 declare 关键字解决了构建问题,

    export declare class myClass{
        ...
    }
    

    转向

    export class myClass{
        ...
    }
    

    【讨论】:

      猜你喜欢
      • 2019-04-26
      • 2020-06-07
      • 2021-11-25
      • 2021-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-03
      • 2019-04-13
      相关资源
      最近更新 更多