Предостережение: я прочитал много других статей по этой проблеме, и ни одна не дала успешных результатов. Я закомментировал весь интересный код, и он все еще не работает.
Я получаю следующую ошибку:
Ошибка при ошибке при компиляции шаблона '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
Они не идентичны, но достаточно близки, чтобы не вызывать серьезных изменений.
Пожалуйста, кто-нибудь может помочь, это становится отчаянным !!!
Пожалуйста, обратите внимание, что любые неправильные имена или нерегулярные заглавные буквы могут быть из-за моей защиты имен членов