这是一个概念性的问题。
我对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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句