I ran into a problem here and I don’t know what to do> When I type ng serve, the following error appears
ERROR ERROR: An error was detected while resolving character values statically. Only initialized variables and constants can be referenced because the value of this variable is necessary for the template compiler (position 175: 22 in the source .ts file), allowing the NgModule character in / Users / Frontend / node_modules / @ angular / core / src / metadata / ng_module. d.ts, allowing the CoreModule character in /Users/Frontend/src/app/core/core.module.ts, allowing the CoreModule character in /Users/Frontend/src/app/core/core.module.ts in positionalError (/ Users /Frontend/node_modules/@angular/compiler/bundles/compiler.umd.js:25273:35) at simpifyInContext (/Users/Frontend/node_modules/@angular/compiler/bundles/compiler.umd.js:25116:27) in StaticReflector.simplify (/Users/Frontend/node_modules/@angular/compiler/bundles/compiler.umd.js:25130:13) in StaticReflector.annotations (/Users/Frontend/node_modules/@angular/compiler/bundles/compiler.umd.js:24558:41) in _getNgModuleMetadata (/Users/Frontend/node_modules/@angular/compiler-cli/src/ngtools_impl.js:138 : 31) in _extractLazyRoutesFromStaticModule (/Users/Frontend/node_modules/@angular/compiler-cli/src/ngtools_impl.js:109:26) at / Users / Frontend / node_modules / @ angular / compiler-cli / src / ngtools_ js: 129: 27 on Array.reduce (native) in _extractLazyRoutesFromStaticModule (/Users/Frontend/node_modules/@angular/compiler-cli/src/ngtools_impl.js:128:10) in Object.listLazyRoutesOfModule / / Users / Front /@angular/compiler-cli/src/ngtools_impl.js:53:22) in Function.NgTools_InternalApi_NG_2.listLazyRoutes (/Users/Frontend/node_modules/@angular/compiler-cli/src/ngtools_api.js:91:39) AotPlugin._getLazyRoutesFromNgtools (/Users/Frontend/node_modules/@ngtools/webpack/src/plugin.js:207:44) in _donePromise.Promise.resolve.then.then.then.then.then (/ Users / Frontend / nodegtules /webpack/src/plugin.js:443:24) at process._tickCallback (internal / process / next_tick.js: 109: 7)
webpack: Failed to compile.
CoreModule
import {CommonModule} from '@angular/common';
import {NgModule} from '@angular/core/src/metadata/ng_module';
import {SkipSelf, Optional} from '@angular/core';
import {HttpErrorHandler} from './services/http-error-handler';
import {AuthService} from './services/auth.service';
import {PrivatePageGuard} from './services/private-page.guard';
import {PublicPageGuard} from './services/public-page.guard';
import {XHRBackend, Http, RequestOptions, HttpModule} from '@angular/http';
import {JsonHttp} from './services';
export function createJsonHttp(xhrBackend: XHRBackend, requestOptions:
RequestOptions) {
const ngHttp = new Http(xhrBackend, requestOptions);
return new JsonHttp(ngHttp);
}
@NgModule({
imports: [
CommonModule,
HttpModule
],
exports: [],
providers: [
{
provide: JsonHttp,
useFactory: createJsonHttp,
deps: [XHRBackend, RequestOptions]
},
HttpErrorHandler,
AuthService,
PrivatePageGuard,
PublicPageGuard,
]
})
export class CoreModule {
constructor(@Optional() @SkipSelf() parentModule: CoreModule) {
if (parentModule) {
throw new Error(
'CoreModule is already loaded. Import it in the AppModule only');
}
}
}
app.module.ts, coremodule
import {NgModule, ApplicationRef} from "@angular/core";
import {BrowserModule} from "@angular/platform-browser";
import {RouterModule, PreloadAllModules} from "@angular/router";
import {FormsModule, ReactiveFormsModule} from "@angular/forms";
import {ENV_PROVIDERS} from "./environment";
import {ROUTES} from "./app.routes";
import {AppComponent} from "./app.component";
import {CoreModule} from "./core";
import {HomeModule} from "./pages/home/home.module";
import {AuthModule} from "./pages/auth/auth.module";
import {HeaderModule} from "./components/header/header.module";
import {removeNgStyles, createInputTransfer, createNewHosts} from "@angularclass/hmr";
import {TransactionsModule} from "./pages/transactions/transactions.module";
@NgModule({
bootstrap: [AppComponent],
declarations: [
AppComponent
],
imports: [
BrowserModule,
RouterModule.forRoot(ROUTES, {
preloadingStrategy: PreloadAllModules
}),
FormsModule,
ReactiveFormsModule,
CoreModule,
HomeModule,
AuthModule,
HeaderModule,
TransactionsModule
],
providers: [
ENV_PROVIDERS,
]
})
export class AppModule {
constructor(public appRef: ApplicationRef) {
}
hmrOnInit(store) {
if (!store || !store.state) return;
console.log('HMR store', store);
console.log('store.state.data:', store.state.data);
if ('restoreInputValues' in store) {
store.restoreInputValues();
}
this.appRef.tick();
delete store.state;
delete store.restoreInputValues;
}
hmrOnDestroy(store) {
const cmpLocation = this.appRef.components.map(cmp => cmp.location.nativeElement);
store.disposeOldHosts = createNewHosts(cmpLocation);
store.state = {data: 'yolo'};
store.restoreInputValues = createInputTransfer();
removeNgStyles();
}
hmrAfterDestroy(store) {
store.disposeOldHosts();
delete store.disposeOldHosts;
}
}
app.routes.ts:
import {Routes} from "@angular/router";
import {HomeComponent} from "./pages/home/home.component";
import {AuthComponent} from "./pages/auth/auth.component";
import {PrivatePageGuard} from "./core/services/private-page.guard";
import {PublicPageGuard} from "./core/services/public-page.guard";
import {TransactionsComponent} from "./pages/transactions/transactions.component";
export const ROUTES: Routes = [
{
path: 'home',
component: HomeComponent,
canActivate: [PrivatePageGuard]
},
{
path: 'transactions',
component: TransactionsComponent,
canActivate: [PrivatePageGuard]
},
{
path: 'login',
component: AuthComponent,
canActivate: [PublicPageGuard]
},
];