Включая пользовательские наборы в проекте JHipster (v5.82) - PullRequest
0 голосов
/ 26 мая 2019

Основная идея - начать с нового проекта JHipster (v5.8.2) и интегрировать в него тему Metronic Angular.Я не нашел много документации по этой задаче, но вяло интегрировал различные комплекты css / js, компоненты, однако натолкнулся на проблему с некоторыми из их директив.Таким образом, в основном в toggle.directive.ts после инициации представления он пытается создать новый KTToggle, см.

ngAfterViewInit(): void {
    this.toggle = new KTToggle(this.el.nativeElement, this.options);
}

KTToggle определен в scripts.bundle.js что я уже импортировал в vendor.ts .Я также скопировал файл typings.d.ts из metronic в src / main / webapp / app .

Проблема в том, что он не находит KTToggle, при запуске npm запустите webpack: build Я не получаю ошибки, но при попытке доступа к странице я получаю

ERROR ReferenceError: "KTToggle is not defined"

Дополнительно в IntelliJ я получаю следующую ошибку

TS2350: Only a void function can be called with the 'new' keyword

Я пытался объявить KTToggle прямо в директиве

declare var KTToggle: any;

Но это дает мне ту же ReferenceError.Кроме того, в tsconfig.json я пытался указать на файл наборов с помощью typeRoots , types , files все выдало мне либо ту же ошибкуили для типов произошел сбой других частей приложения.

Я не слишком разбираюсь в Angular / Webpack, но подозреваю, что набор текста загружен неправильно, потому что, если я пытаюсь перейтик определению KTToggle в IntelliJ он указывает на файл scripts.bundle.js .

Я приветствую любую помощь, спасибо.

Дополнительная информация:

typings.d.ts

    /* SystemJS module definition */
declare var module: NodeModule;
interface NodeModule {
    id: string;
}

declare var KTMenu: any;
declare var KTOffcanvas: any;
declare var KTScrolltop: any;
declare var KTHeader: any;
declare var KTToggle: any;
declare var KTUtil: any;
declare var KTPortlet: any;
declare var KTDialog: any;
declare var Chart: any;

scripts.bundle.js

.....    
KTToggle=function(t,e){var n=this,i=KTUtil.get(t);KTUtil.get("body");if(i){var o={togglerState:"",targetState:""}
....
...