Я создал новый пакет Angular (moteur-Formulaire-Front), который я опубликовал на npm.
Когда я пытаюсь использовать модуль из пакета в моем проекте, он не распознается, и я получаю эту ошибку:
src/app/app.module.ts(29,32): error TS2307: Cannot find module 'moteur-formulaire-front'.
Пакет хорошо импортирован в package.json, и я попытался импортировать его в AppModule моего проекта, добавив следующую строку и добавив его в импорт NgModule:
import {SchemaFormModule} from 'moteur-formulaire-front';
но Intellij не распознает его (но когда я нажимаю по нему Ctrl +, он попадает в соответствующий загруженный модуль node_module).
Я думаю, что это связано с тем, как я собрал новый пакет, и с проблемой экспорта модуля. Я читал, что он должен быть в экспорте NgModule, чтобы быть распознанным, но я не вижу, чего не хватает.
moteur-Formulaire-Front: tsconfig.json
{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./",
"outDir": "./dist",
"sourceMap": true,
"declaration": true,
"stripInternal": true,
"module": "es2015",
"moduleResolution": "node",
"paths": {
"@angular/core": ["node_modules/@angular/core"],
"rxjs/*": ["node_modules/rxjs/*"]
},
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"importHelpers": true,
"rootDir": ".",
"inlineSources": true,
"target": "es5",
"skipLibCheck": true,
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2018",
"dom"
]
},
"angularCompilerOptions": {
"strictMetadataEmit": true
},
"files": [
"./src/index.ts",
"./src/main.ts",
"./src/polyfills.ts"
]
}
moteur-Formulaire-Front: index.ts
export {AppModule} from "./app/app.module";
export {SchemaFormModule} from "./lib/angular2-schema-form/schema-form.module";
moteur-Formulaire-Front: app.module.ts
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import {CommonModule} from "@angular/common";
import {SharedModule} from "../lib/shared/shared.module";
import {SchemaFormModule} from "../lib/angular2-schema-form";
@NgModule({
declarations: [
AppComponent
],
imports: [
CommonModule,
SharedModule,
SchemaFormModule
],
exports: [
SchemaFormModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
moteur-Formulaire-Front: schema-form.module.ts
import {...};
@NgModule({
imports: [
CommonModule,
FormsModule,
ReactiveFormsModule,
SharedModule
],
declarations: [
FormElementComponent,
...
],
entryComponents: [
FormElementComponent,
...
],
exports: [
SchemaFormModule,
. ...
],
providers: [
]
})
export class SchemaFormModule {
static forRoot(): ModuleWithProviders {
return {
ngModule: SchemaFormModule, providers: [
{provide: WidgetRegistry, useClass: SanWidgetRegistry},
{provide: FormTrackDataService, useClass: FormTrackDataService},
{provide: SchemaValidatorFactory, useClass: ZSchemaValidatorFactory},
{provide: FileuploadService, useClass: FileuploadService}
]
};
}
}
Кто-нибудь есть идеи? Спасибо!