首页 > 解决方案 > Angular - 使用本地库

问题描述

我创建了两个本地库:

ng new my-library --create-application=false
ng generate library core
ng generate library shared

在共享库中使用核心:

import { CoreModule } from 'core';
@NgModule({
  declarations: [SharedComponent],
  imports: [
    CoreModule
  ],
  exports: [SharedComponent]
})
export class SharedModule { }

我有角度应用程序,它引用了这两个库:

tsconfig.json:

"paths": {
  "library/core": ["../library/dist/core/"],
  "library/shared": ["../library/dist/shared/"]
}

app.module.ts:

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import {CoreModule} from 'library/core';
import {SharedModule} from 'library/shared';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    CoreModule,
    SharedModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

当 SharedModule 没有 import CoreModule 时,我可以成功构建应用程序。但是当 SharedModule 有 import CoreModule 时:

../library/dist/shared/fesm2015/shared.js 中的错误找不到模块:错误:无法解析“angular\library\dist\shared\fesm2015”中的“core”

如何将本地库导入应用程序?谢谢

标签: angular

解决方案


你在项目中添加了package.json吗?您需要它来解决依赖关系:

  "dependencies": {
     "library/core": "file:core/dist"
  ...

问候。


推荐阅读