Я получаю ошибки следующего вида при запуске Angular 8:
ERROR in ./src/common/directives/app-launcher/app-launcher.component.html 1:0
Module parse failed: Unexpected token (1:0)
You may need an appropriate loader to handle this file type, currently no loaders are configured
to process this file. See https://webpack.js.org/concepts#loaders
> <div *ngIf="_allowed">
| <div (click)="launch()">
| <span>{{ app.name }}</span>
Ничего хитрого или странного.
angular -cli --version:
Angular CLI: 8.3.23
Node: 12.13.1
OS: darwin x64
Angular: 8.2.14
... animations, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... router
Package Version
-----------------------------------------------------------
@angular-devkit/architect 0.803.23
@angular-devkit/build-angular 0.803.23
@angular-devkit/build-optimizer 0.803.23
@angular-devkit/build-webpack 0.803.23
@angular-devkit/core 8.3.23
@angular-devkit/schematics 8.3.23
@angular/cli 8.3.23
@ngtools/webpack 8.3.23
@schematics/angular 8.3.23
@schematics/update 0.803.23
rxjs 6.4.0
typescript 3.5.3
webpack 4.39.2
Вот код: app-launcher.component. html
<div *ngIf="_allowed">
<div (click)="launch()">
<span>{{ app.name }}</span>
<div [hidden]="!app.invalid">
<div>Error opening {{ app.name }}.</div>
</div>
</div>
</div>
app-launcher.component.ts
import { Component, Input, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { MyApp, MyUser } from '../../models';
import { UserService, PermissionService } from '../../services';
declare var require: any;
@Component({
selector: 'app-launcher',
template: require('./app-launcher.component.html')
})
export class AppLauncherComponent implements OnInit {
@Input()
private app: MyApp;
private _allowed: boolean;
private _user: MyUser;
constructor(private router: Router, private permissionService: PermissionService, userService: UserService) {
this._user = userService.getUser();
}
ngOnInit(): void {
this._allowed = this.permissionService.permitted(this._user, this.app.privilege);
}
launch() {
if (this._allowed) {
this.router.navigate([this.app.route]);
}
}
get allowed(): boolean {
return this._allowed;
}
}
Вот краткая версия содержащий модуль:
import { NgModule, ModuleWithProviders } from '@angular/core';
import { CommonModule } from '@angular/common';
import { RouterModule } from '@angular/router';
import { AppLauncherComponent } from './directives';
@NgModule({
imports: [
CommonModule,
RouterModule,
HttpClientModule
],
exports: [
AppLauncherComponent
],
declarations: [
AppLauncherComponent
],
providers: [ ]
})
export class SharedModule {
}
Я не думаю, что это сам компонент. Я что-то упустил в настройке. Это сообщение об ошибке в веб-пакете.
Код работает в более старых версиях angular (6).
Кто-нибудь видел что-нибудь похожее на это? 3-й день пытаюсь разобраться.
Спасибо.