I read this thread before but I wasn't paying enough attention I guess. Adding ~ in package.json works. Thanks a lot! :)
ABP Framework version: 9.0 - 9.1.1 UI Type: Angular Database System: EF Core (SQL Server) Auth Server Separated (for Angular): Yes
Exception message and full stack trace : NullInjectorError: NullInjectorError: No provider for InjectionToken SORT_COMPARE_FUNC!
ERROR NullInjectorError: NullInjectorError: No provider for InjectionToken SORT_COMPARE_FUNC!
Angular 38
core.mjs:6537:18
get
get
get
injectInjectorOnly
inject
inject
AbstractMenuService
_UserMenuService
getInheritedFactory
UserMenuService_Factory
hydrate
runInInjectorProfilerContext
hydrate
get
injectInjectorOnly
inject
inject
configureUserMenu
LEPTON_X_USER_MENU_PROVIDERS
runInInjectionContext
runInitializers
bootstrap
_callAndReportToErrorHandler
bootstrap
invoke
onInvoke
invoke
run
run
bootstrap
bootstrapModuleFactory
bootstrapModule
invoke
run
scheduleResolveOrReject
invokeTask
runTask
drainMicroTaskQueue
Hello, I updated ABP version from 9.0 to 9.1 (as a solution for other issues) and i've got error above at runtime. Compilation goes fine, but frontend not working. Tried refreshing node_modules, cache etc. but nothing helps. I guess some package has inccorrect version, please take a look. Here is my package list:
"dependencies": {
"@abp/ng.account": "9.1.1",
"@abp/ng.components": "9.1.1",
"@abp/ng.core": "9.1.1",
"@abp/ng.identity": "9.1.1",
"@abp/ng.oauth": "9.1.1",
"@abp/ng.setting-management": "9.1.1",
"@angular/animations": "19.2.9",
"@angular/cdk": "19.2.3",
"@angular/common": "19.2.9",
"@angular/compiler": "19.2.9",
"@angular/core": "19.2.9",
"@angular/forms": "19.2.9",
"@angular/localize": "19.2.9",
"@angular/platform-browser": "19.2.9",
"@angular/platform-browser-dynamic": "19.2.9",
"@angular/router": "19.2.9",
"@fullcalendar/angular": "6.1.17",
"@fullcalendar/core": "6.1.17",
"@fullcalendar/daygrid": "6.1.17",
"@fullcalendar/interaction": "6.1.17",
"@fullcalendar/timegrid": "6.1.17",
"@microsoft/signalr": "8.0.7",
"@ng-bootstrap/ng-bootstrap": "18.0.0",
"@popperjs/core": "^2.11.8",
"@primeng/themes": "^19.1.0",
"@typescript-eslint/utils": "8.31.0",
"@volo/abp.commercial.ng.ui": "9.1.1",
"@volo/abp.ng.account": "9.1.1",
"@volo/abp.ng.audit-logging": "9.1.1",
"@volo/abp.ng.gdpr": "9.1.1",
"@volo/abp.ng.identity": "9.1.1",
"@volo/abp.ng.language-management": "9.1.1",
"@volo/abp.ng.lepton-x.core": "4.1.1",
"@volo/abp.ng.openiddictpro": "9.1.1",
"@volo/abp.ng.saas": "9.1.1",
"@volo/abp.ng.text-template-management": "9.1.1",
"@volosoft/abp.ng.theme.lepton-x": "4.1.2",
"@volosoft/ngx-lepton-x": "4.1.2",
"file-saver": "^2.0.5",
"jquery": "^3.7.1",
"jquery-ui-dist": "^1.13.2",
"jspdf": "3.0.1",
"jspdf-autotable": "5.0.2",
"moment": "^2.29.4",
"ngx-logger": "^5.0.11",
"primeicons": "^7.0.0",
"primeng": "19.1.0",
"rxjs": "~7.8.0",
"source-map": "0.7.4",
"tslib": "^2.0.0",
"xlsx": "^0.18.5",
"zone.js": "0.15.0"
},
"devDependencies": {
"@abp/ng.schematics": "9.1.1",
"@angular-devkit/build-angular": "19",
"@angular-eslint/builder": "19",
"@angular-eslint/eslint-plugin": "19",
"@angular-eslint/eslint-plugin-template": "19",
"@angular-eslint/schematics": "19",
"@angular-eslint/template-parser": "19",
"@angular/cli": "19",
"@angular/compiler-cli": "19",
"@angular/language-service": "19",
"@types/jasmine": "5.1.7",
"@types/node": "22.14.1",
"@typescript-eslint/eslint-plugin": "8.31.0",
"@typescript-eslint/parser": "8.31.0",
"eslint": "9.25.1",
"jasmine-core": "5.6.0",
"karma": "6.4.4",
"karma-chrome-launcher": "3.2.0",
"karma-coverage": "2.2.1",
"karma-jasmine": "5.1.0",
"karma-jasmine-html-reporter": "2.1.0",
"ng-packagr": "19.2.2",
"typescript": "5.8.3"
}
Thanks in advance
Thanks, your tips seems going too far to us, so finally we made decission to uprade to 9.1.1.
Thanks for helping me
Unfortunately, due to Angular 19 requirement, i can't do this now. Is there another solution for me?
ABP Framework version: 9.0.0 UI Type: Angular (LeptonX) Database System: EF Core (SQLServer) Auth Server Separated (for Angular): Yes Exception message and full stack trace : Volo.Abp.Data.AbpDbConcurrencyException: The database operation was expected to affect 1 row(s), but actually affected 0 row(s); data may have been modified or deleted since entities were loaded
status: 500,
statusText: "OK",
url: "https://localhost:44382/connect/revocat",
ok: false,
name: "HttpErrorResponse",
message: "Http failure response for https://localhost:44382/connect/revocat: 500 OK",
error: "Volo.Abp.Data.AbpDbConcurrencyException: The database operation was expected to affect 1 row(s), but actually affected 0 row(s); data may have been modified or deleted since entities were loaded. See https://go.microsoft.com/fwlink/?LinkId=527962 for information on understanding and handling optimistic concurrency exceptions.
---> Microsoft.EntityFrameworkCore.DbUpdateConcurrencyException: The database operation was expected to affect 1 row(s), but actually affected 0 row(s); data may have been modified or deleted since entities were loaded. See https://go.microsoft.com/fwlink/?LinkId=527962 for information on understanding and handling optimistic concurrency exceptions.
at Microsoft.EntityFrameworkCore.Update.AffectedCountModificationCommandBatch.ThrowAggregateUpdateConcurrencyExceptionAsync(RelationalDataReader reader, Int32 commandIndex, Int32 expectedRowsAffected, Int32 rowsAffected, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Update.AffectedCountModificationCommandBatch.ConsumeResultSetWithRowsAffectedOnlyAsync(Int32 commandIndex, RelationalDataReader reader, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Update.AffectedCountModificationCommandBatch.ConsumeAsync(RelationalDataReader reader, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.SqlServer.Update.Internal.SqlServerModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Storage.RelationalDatabase.SaveChangesAsync(IList`1 entries, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(StateManager stateManager, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerExecutionStrategy.ExecuteAsync[TState,TResult](TState state, Func`4 operation, Func`4 verifySucceeded, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
at Volo.Abp.EntityFrameworkCore.AbpDbContext`1.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
--- End of inner exception stack trace ---
at Volo.Abp.EntityFrameworkCore.AbpDbContext`1.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
at Volo.Abp.Uow.UnitOfWork.SaveChangesAsync(CancellationToken cancellationToken)
at Volo.Abp.Uow.UnitOfWork.CompleteAsync(CancellationToken cancellationToken)
at Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
at Volo.Abp.Identity.IdentitySessionManager.RevokeAsync(IdentitySession session)
at Volo.Abp.Identity.IdentitySessionManager.RevokeAsync(String sessionId)
at Volo.Abp.Account.Web.Pages.Account.OpenIddictRevokeIdentitySessionOnRevocation.HandleAsync(HandleRevocationRequestContext context)
at OpenIddict.Server.OpenIddictServerDispatcher.DispatchAsync[TContext](TContext context)
at OpenIddict.Server.OpenIddictServerDispatcher.DispatchAsync[TContext](TContext context)
at OpenIddict.Server.OpenIddictServerHandlers.Revocation.HandleRevocationRequest.HandleAsync(ProcessRequestContext context)
at OpenIddict.Server.OpenIddictServerDispatcher.DispatchAsync[TContext](TContext context)
at OpenIddict.Server.OpenIddictServerDispatcher.DispatchAsync[TContext](TContext context)
at OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandler.HandleRequestAsync()
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at Volo.Abp.AspNetCore.Security.AbpSecurityHeadersMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.InterfaceMiddlewareBinder.<>c__DisplayClass2_0.<<CreateMiddleware>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Volo.Abp.AspNetCore.Tracing.AbpCorrelationIdMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.InterfaceMiddlewareBinder.<>c__DisplayClass2_0.<<CreateMiddleware>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Localization.RequestLocalizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.RequestLocalization.AbpRequestLocalizationMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.InterfaceMiddlewareBinder.<>c__DisplayClass2_0.<<CreateMiddleware>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Localization.RequestLocalizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.RequestLocalization.AbpRequestLocalizationMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.InterfaceMiddlewareBinder.<>c__DisplayClass2_0.<<CreateMiddleware>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddlewareImpl.Invoke(HttpContext context)
Hi, After pressing the logout button error above is thrown and user remains on same page insted of login page. I checked the tips from the forum already. I tried this solution https://abp.io/support/questions/8917/VoloAbpDataAbpDbConcurrencyException-The-database-operation-was-expected-to-affect-1-rows but without effect.
Please share your advice, Regards
Hi, now it works perfectly!
Thank you!
ABP Framework version: 8.1.1 UI Type: Angular Database System: EF Core (MSSQL) Auth Server Separated (for Angular): Yes Exception message and full stack trace :NullInjectorError: No provider for InjectionToken CORE_OPTIONS
ERROR NullInjectorError: R3InjectorError(AppModule)[ApplicationInitStatus -> InjectionToken Application Initializer -> [object Object] -> ProfilePictureService -> RestService -> InjectionToken CORE_OPTIONS -> InjectionToken CORE_OPTIONS]:
NullInjectorError: No provider for InjectionToken CORE_OPTIONS!
Angular 5
RestService_Factory abp-ng.core.mjs:56
Angular 6
ProfilePictureService_Factory volo-abp.commercial.ng.ui-config.mjs:56
Angular 54
84429 main.ts:11
Webpack 7
core.mjs:7404:22
Angular 29
84429 main.ts:11
Webpack 7
Hi, I updated ABP version from 8.1.1 to 9.0 and i've got error above in runtime. I checked all the tips from the forum but without success. Compilation goes fine, but frontend not working. Removing lock file and modules doesn't help. Here is my package list:
"dependencies": {
"@abp/ng.account": "~9.0.0",
"@abp/ng.components": "~9.0.0",
"@abp/ng.core": "~9.0.0",
"@abp/ng.identity": "~9.0.0",
"@abp/ng.oauth": "~9.0.0",
"@abp/ng.setting-management": "~9.0.0",
"@abp/ng.theme.shared": "~9.0.0",
"@angular/animations": "18",
"@angular/cdk": "18",
"@angular/common": "18",
"@angular/compiler": "18",
"@angular/core": "18",
"@angular/forms": "18",
"@angular/localize": "18",
"@angular/platform-browser": "18",
"@angular/platform-browser-dynamic": "18",
"@angular/router": "18",
"@fullcalendar/angular": "6.1.10",
"@fullcalendar/core": "6.1.10",
"@fullcalendar/daygrid": "6.1.10",
"@fullcalendar/interaction": "6.1.10",
"@fullcalendar/timegrid": "6.1.10",
"@microsoft/signalr": "8.0.0",
"@ng-bootstrap/ng-bootstrap": "16",
"@popperjs/core": "^2.11.8",
"@typescript-eslint/utils": "7.7.0",
"@volo/abp.commercial.ng.ui": "~9.0.0",
"@volo/abp.ng.account": "~9.0.0",
"@volo/abp.ng.audit-logging": "~9.0.0",
"@volo/abp.ng.gdpr": "~9.0.0",
"@volo/abp.ng.identity": "~9.0.0",
"@volo/abp.ng.language-management": "~9.0.0",
"@volo/abp.ng.openiddictpro": "~9.0.0",
"@volo/abp.ng.saas": "~9.0.0",
"@volo/abp.ng.text-template-management": "~9.0.0",
"@volosoft/abp.ng.theme.lepton-x": "3.3.4",
"file-saver": "^2.0.5",
"jquery": "^3.7.1",
"jquery-ui-dist": "^1.13.2",
"jspdf": "^2.5.1",
"jspdf-autotable": "^3.5.29",
"moment": "^2.29.4",
"ngx-logger": "^5.0.11",
"primeicons": "7.0.0",
"primeng": "17.13.0",
"rxjs": "~7.8.0",
"source-map": "0.7.4",
"tslib": "^2.0.0",
"xlsx": "^0.18.5",
"zone.js": "~0.14.0"
},
"devDependencies": {
"@abp/ng.schematics": "~9.0.0",
"@angular-devkit/build-angular": "18",
"@angular-eslint/builder": "18",
"@angular-eslint/eslint-plugin": "18",
"@angular-eslint/eslint-plugin-template": "18",
"@angular-eslint/schematics": "18",
"@angular-eslint/template-parser": "18",
"@angular/cli": "18",
"@angular/compiler-cli": "18",
"@angular/language-service": "18",
"@types/jasmine": "~3.6.0",
"@types/node": "^20.0.0",
"@typescript-eslint/eslint-plugin": "6.9.1",
"@typescript-eslint/parser": "6.9.1",
"eslint": "^8.0.0",
"jasmine-core": "~4.0.0",
"karma": "~6.3.0",
"karma-chrome-launcher": "~3.1.0",
"karma-coverage": "~2.1.0",
"karma-jasmine": "~4.0.0",
"karma-jasmine-html-reporter": "^1.7.0",
"ng-packagr": "^17.3.0",
"typescript": "5.4.5"
}
Here is my app.module.ts file:
import { CoreModule, provideAbpCore, withOptions } from '@abp/ng.core';
import { GdprConfigModule, provideGdprConfig, withCookieConsentOptions } from '@volo/abp.ng.gdpr/config';
import { provideSettingManagementConfig, SettingManagementConfigModule } from '@abp/ng.setting-management/config';
import { ThemeSharedModule, CUSTOM_ERROR_HANDLERS, provideAbpThemeShared, withHttpErrorConfig } from '@abp/ng.theme.shared';
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { CommercialUiConfigModule, provideCommercialUiConfig } from '@volo/abp.commercial.ng.ui/config';
import { AuditLoggingConfigModule, provideAuditLoggingConfig } from '@volo/abp.ng.audit-logging/config';
import { IdentityConfigModule, provideIdentityConfig } from '@volo/abp.ng.identity/config';
import { provideLanguageManagementConfig } from '@volo/abp.ng.language-management/config';
import { registerLocale } from '@volo/abp.ng.language-management/locale';
import { provideTextTemplateManagementConfig } from '@volo/abp.ng.text-template-management/config';
import { HttpErrorComponent, ThemeLeptonXModule } from '@volosoft/abp.ng.theme.lepton-x';
import { SideMenuLayoutModule } from '@volosoft/abp.ng.theme.lepton-x/layouts';
import { environment } from '../environments/environment';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { APP_ROUTE_PROVIDER } from './route.provider';
import { provideOpeniddictproConfig } from '@volo/abp.ng.openiddictpro/config';
import { provideFeatureManagementConfig } from '@abp/ng.feature-management';
import { provideAbpOAuth } from '@abp/ng.oauth';
import { LoggerModule, NgxLoggerLevel } from 'ngx-logger';
import { ConfirmationService } from 'primeng/api';
import { CustomErrorHandlerService } from './utils/error-handling/http-error-handler.service';
@NgModule({
declarations: [AppComponent],
imports: [
BrowserModule,
BrowserAnimationsModule,
AppRoutingModule,
CoreModule,
ThemeSharedModule,
IdentityConfigModule,
AuditLoggingConfigModule,
SettingManagementConfigModule,
ThemeLeptonXModule.forRoot(),
SideMenuLayoutModule.forRoot(),
CommercialUiConfigModule,
GdprConfigModule,
LoggerModule.forRoot({
level: environment.production ? NgxLoggerLevel.WARN : NgxLoggerLevel.TRACE,
colorScheme: ['purple', 'teal', 'gray', 'gray', 'red', 'red', 'red'],
enableSourceMaps: !environment.production,
disableConsoleLogging: environment.production
}),
],
providers: [
APP_ROUTE_PROVIDER,
{ provide: CUSTOM_ERROR_HANDLERS, useExisting: CustomErrorHandlerService, multi: true },
ConfirmationService,
provideAbpCore(
withOptions({
environment,
registerLocaleFn: registerLocale(),
})
),
provideAbpOAuth(),
provideAbpThemeShared(withHttpErrorConfig({
errorScreen: {
component: HttpErrorComponent,
forWhichErrors: [401, 403, 404, 500],
hideCloseIcon: true,
}
})),
provideIdentityConfig(),
provideLanguageManagementConfig(),
provideAuditLoggingConfig(),
provideOpeniddictproConfig(),
provideTextTemplateManagementConfig(),
provideSettingManagementConfig(),
provideCommercialUiConfig(),
provideFeatureManagementConfig(),
provideGdprConfig(withCookieConsentOptions({
cookiePolicyUrl: 'gdpr-cookie-consent/cookie',
privacyPolicyUrl: 'gdpr-cookie-consent/privacy'
})),
],
bootstrap: [AppComponent],
})
export class AppModule { }
Please help with this one. Best regards
Logs are clean, no errors and warnings during proxy generation. Here is my package.json:
{
"name": "MyProject",
"version": "0.2.0",
"scripts": {
"ng": "ng",
"start": "ng lint --fix && ng serve --configuration local --open",
"proxy": "abp generate-proxy -t ng --module app",
"build:dev": "ng lint --fix && ng build --configuration dev",
"watch": "ng build --watch --configuration development",
"test": "ng test",
"lint": "ng lint"
},
"private": true,
"dependencies": {
"@abp/ng.components": "~8.1.1",
"@abp/ng.core": "~8.1.1",
"@abp/ng.oauth": "~8.1.1",
"@abp/ng.setting-management": "~8.1.1",
"@abp/ng.theme.shared": "~8.1.1",
"@abp/ng.account": "~8.1.1",
"@abp/ng.identity": "~8.1.1",
"@volo/abp.commercial.ng.ui": "~8.1.1",
"@volo/abp.ng.account": "~8.1.1",
"@volo/abp.ng.audit-logging": "~8.1.1",
"@volo/abp.ng.gdpr": "~8.1.1",
"@volo/abp.ng.identity": "~8.1.1",
"@volo/abp.ng.openiddictpro": "~8.1.1",
"@volo/abp.ng.language-management": "~8.1.1",
"@volo/abp.ng.saas": "~8.1.1",
"@volo/abp.ng.text-template-management": "~8.1.1",
"@volosoft/abp.ng.theme.lepton-x": "~3.1.1",
"@angular/animations": "^17.3.5",
"@angular/cdk": "17.3.5",
"@angular/common": "^17.3.5",
"@angular/compiler": "^17.3.5",
"@angular/core": "^17.3.5",
"@angular/forms": "^17.3.5",
"@angular/localize": "^17.3.5",
"@angular/platform-browser-dynamic": "^17.3.5",
"@angular/platform-browser": "^17.3.5",
"@angular/router": "^17.3.5",
"@fullcalendar/angular": "6.1.10",
"@fullcalendar/core": "6.1.10",
"@fullcalendar/daygrid": "6.1.10",
"@fullcalendar/interaction": "6.1.10",
"@fullcalendar/timegrid": "6.1.10",
"@microsoft/signalr": "8.0.0",
"@ng-bootstrap/ng-bootstrap": "16.0.0",
"@popperjs/core": "^2.11.8",
"@typescript-eslint/utils": "7.7.0",
"file-saver": "^2.0.5",
"jquery": "^3.7.1",
"jquery-ui-dist": "^1.13.2",
"jspdf": "^2.5.1",
"jspdf-autotable": "^3.5.29",
"moment": "^2.29.4",
"ngx-logger": "^5.0.11",
"primeicons": "7.0.0",
"primeng": "17.13.0",
"xlsx": "^0.18.5",
"rxjs": "~7.8.0",
"tslib": "^2.0.0",
"zone.js": "~0.14.0"
},
"devDependencies": {
"@abp/ng.schematics": "~8.1.1",
"@angular-devkit/build-angular": "~17.1.0",
"@angular-eslint/builder": "~17.2.0",
"@angular-eslint/eslint-plugin": "~17.2.0",
"@angular-eslint/eslint-plugin-template": "~17.2.0",
"@angular-eslint/schematics": "~17.2.0",
"@angular-eslint/template-parser": "~17.2.0",
"@angular/cli": "~17.1.0",
"@angular/compiler-cli": "~17.1.0",
"@angular/language-service": "~17.1.0",
"@types/jasmine": "~3.6.0",
"@types/node": "^20.0.0",
"@typescript-eslint/eslint-plugin": "6.9.1",
"@typescript-eslint/parser": "6.9.1",
"eslint": "^8.0.0",
"jasmine-core": "~4.0.0",
"karma": "~6.3.0",
"karma-chrome-launcher": "~3.1.0",
"karma-coverage": "~2.1.0",
"karma-jasmine": "~4.0.0",
"karma-jasmine-html-reporter": "^1.7.0",
"ng-packagr": "^17.3.0",
"typescript": "~5.3.0"
}
}
I saw this issue already, but i didn't found working solution there. The problem appears after upgrade to v8.1.1 (from v7.2.2) and no changes were made in backend.
Error: src/app/proxy/models.ts:2:15 - error TS2303: Circular definition of import alias 'TKey'.
2 import type { TKey } from './models'; ~~~~
Error: src/app/proxy/models.ts:2:15 - error TS2459: Module '"./models"' declares 'TKey' locally, but it is not exported.
2 import type { TKey } from './models'; ~~~~
src/app/proxy/models.ts:2:15 2 import type { TKey } from './models'; ~~~~ 'TKey' is declared here.
Just generate proxy using command: abp generate-proxy
. After proxy is generated, error above appears. Removing this line:
import type { TKey } from './models';
helps, but it's annoing to do it after each proxy generation.