Электронный угловой динамический импорт с использованием файловой системы узла - PullRequest
0 голосов
/ 01 ноября 2019

Я использую этот репозиторий и хочу импортировать некоторые классы, чтобы создать приложение с расширениями.

Когда я пытаюсь импортировать файлы из определенной папки (я хочу импортировать все классы / расширения из этой папки), используя файловую систему узла, я получаю ошибку Error: Cannot find module './src/app/extensions/youtube.ts' (полная ошибка в консоли ), я пытался использовать path.resolve(extensionPath), но получаю ту же ошибку.

Ниже мой код:

Вот мой файл extensions.service.ts:

import {Injectable} from '@angular/core';
import {ElectronService} from '../core/services';

@Injectable({
    providedIn: 'root'
})
export class ExtensionsService {
    extensions;
    es: ElectronService;

    constructor(es: ElectronService) {
        this.es = es;
    }

    async addToList() {
        const path = './src/app/extensions';
        console.log(this.es.remote.app.getAppPath());
        console.log();
        this.es.fs.readdirSync(path).forEach(item => {
            // const extension = require(this.es.path.resolve(path + '/' + item));
            const extension = require(path + '/' + item);
            console.log(extension);
            // this.extensions.push(extension);
        });
    }

    get list() {
        return this.extensions;
    }
}

Это расширение:

import {Extension} from '../interfaces/extension';

export class Youtube implements Extension {
    command: String;
    details: String;
    name: String;

    run() {
    }
}

И интерфейс:

export interface Extension {
    name: String;
    details: String;
    command: String;
    run();
}

Как я могу импортировать расширения / классы в электрон (я думаю, что электрон - это проблема, может быть, я ошибаюсь)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...