Создание углового пакета: не распознается при импорте - PullRequest
0 голосов
/ 01 июля 2019

Я создал новый пакет 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}
      ]
    };
  }

}

Кто-нибудь есть идеи? Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...