Angular Сборка AOT: вызовы функций не поддерживаются в декораторах, но был вызван '####'. Локальные работы, NPM Сбой пакета - PullRequest
0 голосов
/ 10 марта 2020

Предостережение: я прочитал много других статей по этой проблеме, и ни одна не дала успешных результатов. Я закомментировал весь интересный код, и он все еще не работает.

Я получаю следующую ошибку:

Ошибка при ошибке при компиляции шаблона 'AppModule'
Вызовы функций не поддерживаются в декораторах, но 'LoginModule' был Позвонил.

Это для пользовательского пакета, когда в локальном каталоге код работает отлично. При помещении в пакет NPM и импорте в node_modules он перестает работать. Кажется, что когда он загружается с пакетами NPM в AOT, он видит .for Root () так, как будто он содержит функцию, или это может быть «универсальным» для ошибок, связанных с этим модулем.

login.module.ts:

import { CommonModule } from '@angular/common';
import { CookieService } from 'angular2-cookie/services/cookies.service';
import { AuthenticationService } from './authentication.service';
import { HttpModule } from '@angular/http';
import { LoginConfig } from './login.config';

export function loginConfigFactory(): LoginConfig {
  return { authUrl: "localhost/api/authorisation" };
};

// @dynamic
@NgModule({
  imports: [
    CommonModule,
    HttpModule
  ]
})
export class LoginModule {
  public static forRoot(loginConfig: LoginConfig = null): ModuleWithProviders {
    return {
      ngModule: LoginModule,
      providers: [
        { provide: LoginConfig, useValue: loginConfig },
        { provide: CookieService, useClass: CookieService },
        AuthenticationService
      ]
    }
  }
}

Импортировано с:

app.modules:

import { LoginModule, LoginConfig } from "authorisation-package";
import { globals } from './globals';

export function loginConfigFactory(): LoginConfig {
  return { authUrl: "localhost/api/authorisation" };
};
@NgModule({
  imports: [
    LoginModule.forRoot(),
    ...
  ],
  ...
  providers: [
    {
      provide: LoginConfig,
      useFactory: loginConfigFactory
    },

Я попытался закомментировать код в модуле входа, и это дает тот же результат. Поэтому я знаю, что это не провайдеры.

Казалось бы, это больше похоже на настройку пакета NPM.

Вот библиотека tsconfig.lib. json:

{
  "extends": "../../tsconfig.json",
  "compilerOptions": {
    "outDir": "../../out-tsc/lib",
    "target": "es2015",
    "module": "es2015",
    "moduleResolution": "node",
    "declaration": true,
    "sourceMap": true,
    "inlineSources": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "importHelpers": true,
    "types": [],
    "lib": [
      "dom",
      "es2018"
    ]
  },
  "angularCompilerOptions": {
    "annotateForClosureCompiler": true,
    "skipTemplateCodegen": true,
    "strictMetadataEmit": true,
    "fullTemplateTypeCheck": true,
    "strictInjectionParameters": true,
    "enableResourceInlining": true
  },
  "exclude": [
    "src/test.ts",
    "**/*.spec.ts"
  ]
}

, а вот tsconfig. json, приведенная выше:

  "compileOnSave": false,
  "compilerOptions": {
    "baseUrl": "./",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "module": "es2015",
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "importHelpers": true,
    "target": "es5",
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2018",
      "dom"
    ],
    "paths": {
      "authorisation": [
        "dist/authorisation"
      ],
      "authorisation/*": [
        "dist/authorisation/*"
      ]
    }
  }
}

Управление версиями проекта:

@angular-devkit/architect         0.11.0
@angular-devkit/build-angular     0.11.0
@angular-devkit/build-optimizer   0.11.0
@angular-devkit/build-webpack     0.11.0
@angular-devkit/core              7.1.0
@angular-devkit/schematics        7.1.0
@angular/cdk                      7.3.3
@ngtools/webpack                  7.1.0
@schematics/angular               7.1.0
@schematics/update                0.11.0
rxjs                              6.3.3
typescript                        3.1.6
webpack                           4.23.1

Управление версиями пакета:

@angular-devkit/architect          0.13.9
@angular-devkit/build-angular      0.13.9
@angular-devkit/build-ng-packagr   0.13.9
@angular-devkit/build-optimizer    0.13.9
@angular-devkit/build-webpack      0.13.9
@angular-devkit/core               7.3.9
@angular-devkit/schematics         7.3.9
@angular/cli                       7.3.9
@ngtools/json-schema               1.1.0
@ngtools/webpack                   7.3.9
@schematics/angular                7.3.9
@schematics/update                 0.13.9
ng-packagr                         4.7.1
rxjs                               6.3.3
typescript                         3.2.4
webpack                            4.29.0

Они не идентичны, но достаточно близки, чтобы не вызывать серьезных изменений.

Пожалуйста, кто-нибудь может помочь, это становится отчаянным !!!

Пожалуйста, обратите внимание, что любые неправильные имена или нерегулярные заглавные буквы могут быть из-за моей защиты имен членов

...