尝试使用ng-packagr创建库。
我运行的内部项目:
ng g库nt-select --prefix nt
在nt-select.component.ts内部
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'nt-nt-select',
template: `
<mat-form-field>
<mat-select [placeholder]="placeholder" [disabled]="disabled" [multiple]="multiple" [(ngModel)]="value"
[required]="required">
<ngx-mat-select-search *ngIf="searchable"
[formControl]="optionFilterCtrl"
[placeholderLabel]="'Axtar'"
[noEntriesFoundLabel]="'Tapılmadı'"
[clearSearchInput]="false"
></ngx-mat-select-search>
<mat-option *ngFor="let opt of filteredOptions$ | async" [value]="opt.value">
{{opt.label}}
</mat-option>
</mat-select>
<mat-error>{{getErrors('hobbies')}}</mat-error>
</mat-form-field>
`,
styles: []
})
export class NtSelectComponent implements OnInit {
constructor() { }
ngOnInit() {
}
}
和nt.select.module:
import { NgModule } from '@angular/core';
import { NtSelectComponent } from './nt-select.component';
import {CommonModule} from '@angular/common';
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
import {FormsModule, ReactiveFormsModule} from '@angular/forms';
import {MatSelectModule} from '@angular/material';
import {NgxMatSelectSearchModule} from 'ngx-mat-select-search';
@NgModule({
imports: [
CommonModule,
BrowserAnimationsModule,
MatSelectModule,
NgxMatSelectSearchModule,
ReactiveFormsModule,
FormsModule
],
declarations: [NtSelectComponent],
exports: [NtSelectComponent]
})
export class NtSelectModule { }
问题是nt-select发出错误,即使我导入了所有模块,也找不到 mat-form-field,mat-select,ngx-mat-select-search 的名称。
关注以下教程:https://blog.angularindepth.com/creating-a-library-in-angular-6-87799552e7e5
可能是什么问题?
预先感谢
答案 0 :(得分:2)
在ng-package.json
文件中包含角形材料和其他外部包装
{
"lib": {
"entryFile": "public_api.ts",
"externals": {
"@angular/material/input": "ng.material.input",
"@angular/material/select": "ng.material.select"
.....
}
}
}