Angular 7 - 自定义库 - 无法导出简单类

3
我创建了一个自定义库,以便在我的应用程序中使用。
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'; 之后,你是否重新构建了它? - Adrita Sharma
1
你从 my-angular-lib 而不是 e5-angular-lib 进行导入,这正常吗? - Mehdi Benmoha
已更正,(代码是专有的) - user7082181
是的,我重新构建了它。 - user7082181
2个回答

1

在我的情况下,删除声明关键字可以解决构建问题。

export declare class myClass{
    ...
}

转向

export class myClass{
    ...
}

0

好的,我终于让它工作了

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

突然间我的类就能被找到了

奇怪的是,昨天我已经做了无数次这样的操作


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接