Импорт рабочего загрузчика Webpack завершается неудачно, поскольку Файл [...] не является модулем

Я пытаюсь настроить Worker в соответствии с примером в документации для загрузчика работника ( https://github.com/webpack-contrib/worker-loader).

К сожалению, сборка завершается с ошибкой:

TS2306: File 'MyWorker.worker.ts is not a module

webpack.config

module {
    rules: [
        { 
            test: /\.worker\.ts$/, 
            use: [{ loader: 'worker-loader' }, { loader: 'babel-loader' }, { loader: 'ts-loader' }],
        }
    }

Также я объявил модуль, как описано в документации

declare module '*.worker' {
    class WebpackWorker extends Worker {
        constructor()
    }

    export default WebpackWorker
}

MyWorker.worker.ts (упрощенный)

const context: Worker = self as any
class MyWorker {
    constructor() {
        addEventListener('message', e => {
            /* do message handling */
            context.postMessage(/* message handling result */)
        }
    }
}
export default MyWorker

И, наконец, модуль импорта

import MyWorker from 'MyWorker.worker'

const myWorker = new MyWorker()
/* fun stuff with worker */

Если я включаю рабочий код TypeScript в код JavaScript, все работает нормально. Если код, который использует рабочий, также является TypeScript, компилятор TS выдает ошибку выше.

Есть идеи?

0 ответов

Другие вопросы по тегам