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

Проблема

При первом запуске сервера я получаю сообщение об ошибке: ERROR in Cannot read property 'members' of null.

Я отследил это до следующего блока кода:

const MODULES = [

    // This gets all of the page modules from the pages array of page objects
    // Then uses the spread operator to inject the resulting array of modules individually
    ...getPageModules(), <---- THIS IS THE PROBLEM LINE

    // Proceed as usual
    CommonModule,
    Sidebar,
    Windows,
    Taskbar
]

Настройка

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

Вот ссылка на функцию getPageModules и связанную с ней функцию:

getPageModules:

// Returns all of the modules for all of the pages
export function getPageModules( _pages: any[] = pages ): any[] {

    // Get all of the module elements recursively from the pages array
    return getPageElements( pages, "module");
};

getPageElements:

// Recursively retrieves all instances of a specific element in all page objects
export function getPageElements( _pages: any[] = pages, element ): any[] {

    // Recursively build an array of all elements.
    let elements = _pages.map( page => {

        // Return the page element, or the spread array of elements returned by a recursive call to this function
        return page[element] ? page[element] : [].concat.apply([], [...getPageElements(page.pages, element)]);
    })

    // Return the resulting elements
    return elements;
}

Что я пробовал

Я посмотрел на возвращение этих функций, и нет никаких проблем.На самом деле это работает, если я закомментирую строку проблемы, сохраню и скомпилирую (программа компилируется, но не работает, потому что модули не загружены), а затем откомментирую строку проблемы и сохраню (эта программа компилируется и работает на этот разпоскольку модули загружены.

Кроме того, я совершенно не понимаю, почему это не скомпилируется при первом запуске.

Что мне нужно

Iищу способ динамической загрузки этих модулей и корректной компиляции приложения при первом запуске.

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