Импорт рабочего загрузчика 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 выдает ошибку выше.
Есть идеи?