Поток не работает при использовании `worker-loader` для импорта веб-работников - PullRequest
0 голосов
/ 30 апреля 2020

Я использую поток в своем приложении реакции и начал использовать веб-работников, также используя flow-immutable-models поток работает в исполняемых файлах основного потока, но не работает в рабочем файле. При перезапуске сервера веб-пакетов после сохранения он застревает в плагине паруса. Кто-нибудь сталкивался с подобной проблемой в прошлом?

Мой код выглядит следующим образом: файл контроллера

import ImportWorker from 'worker-loader!./ImportWorker.js';

....

const worker = new ImportWorker();
            worker.onmessage = this.handleMsg;
            this.worker = worker;

рабочий файл

//@flow
const parseCSV = ({
    file,
    config = {}
}): Promise<{
    file: File,
    parsedFile: {
        fileRows: Array<Object>,
        fileHeaders: Array<string>
    }
}> => {
    return new Promise((resolve, reject) => {
        // some passing logic
    });
};

// some handelIncomingMsg handler logic

onmessage = e => {
    try {
        handelIncomingMsg(e);
    } catch (err) {
        onError({ ...err, id: e.data.id });
    }
};

1 Ответ

0 голосов
/ 05 мая 2020

Для тех, кто сталкивался с этой проблемой, мой исправлен после изменения порядка в конфигурации загрузчика webpack.

Старая конфигурация

use: [
      {
           loader: 'babel-loader',
           query: {
               cacheDirectory: true
           }
     },
     {
           loader: 'worker-loader',
           query: {
               inline: true,
               fallback: false
           }
     }
]

Новая конфигурация

use: [
      {
           loader: 'worker-loader',
           query: {
               inline: true,
               fallback: false
           }
      },
      {
           loader: 'babel-loader',
           query: {
               cacheDirectory: true
           }
     }         
]
...