从Angular 4中的其他包中导入模块

露西

这是一个概念性的问题。

我对Angular和npm都是绝对的初学者,所以这当然是一个基本问题,但是我一直到处都是,没有找到答案。

我想在开始一个项目之前做一些概念上的证明。我想要一个名为Imported的软件包,并在一个名为Importer的软件包中重用它

导入程序的package.json已作为依赖项导入:

"dependencies": {
    ...
    "imported": "file:../Imported",
    ...
}

按预期,已导入位于Importer的node_modules文件夹中。

我一直关注Angular关于重用模块的文档他们描述的示例正是我想要的,只是我想从依赖关系内部做到这一点。

因此,我已经在Importer的app.module.ts中导入了ImportedAppModule。

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';


import { AppComponent } from './app.component';
import { ImportedAppModule } from 'imported/src/app/app.module';

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

我还已经在Imported的app.module.ts中导出了该组件:

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';


import { ImportedAppComponent } from './app.component';


@NgModule({
  declarations: [
    ImportedAppComponent
  ],
  imports: [
    BrowserModule
  ],
  exports: [
    ImportedAppComponent
  ],
  providers: [],
  bootstrap: [ImportedAppComponent]
})
export class ImportedAppModule { }

使用此设置,我得到以下错误:

../imported/src/app/app.module.ts中的错误模块构建失败:错误:TypeScript编译中缺少\ imported \ src \ app \ app.module.ts。请通过“文件”或“包含”属性确保它在您的tsconfig中。

因此,似乎我必须在tsconfig.app.json中包含此依赖项。但是我也读到某个地方,我不必将其包含在其中,而必须将其包含在Importer的bootstrap数组中。我都尝试过,但都没有用,但这很好,配置详细信息不在此问题的范围内。

我的问题是,哪一个?正常的做法是什么?我在正确的轨道上吗?如果是这样,下一步是什么?

我试过在Imported包中使用ng build --aot,并将依赖项添加到Importer中的dist文件夹中,但是失败并说它没有package.json,所以我想我可以尝试做一下准时 不过,我想知道如何使用aot。

我真的很感谢一些指导。提前致谢!

维卡斯

您可以使用ng-packagr将库转换为Angular Package Format
执行npm install ng-packagr --save-dev

请参考使用Angular CLI和ng-packagr构建Angular 4组件库

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章