javascript - Hvordan importere moduler i Web Worker?


Jeg utvikler et prosjekt ved hjelp av Node.js + TypeScript.

Etter å ha startet main.ts returnerer den:

import { parentPort } from 'worker_threads';
^^^^^^

SyntaxError: Cannot use import statement outside a module

main.ts

import { Worker } from 'worker_threads';

const worker = new Worker('./src/Workers/worker.ts');

worker.on('message', (data) => {
    console.log(data);
})

worker.postMessage('start');

arbeider.ts

import { parentPort } from 'worker_threads';
import { broadcastService } from '../services/BroadcastService'

parentPort?.on('message', async (data: string) => {
    console.log(data);
    const currentBroadcasts = await broadcastService.startBroadcastsChecking();
    parentPort?.postMessage(currentBroadcasts);
})

Prøvd :

  1. endre filendelse til .js (worker.ts -> worker.js)
  2. new Worker('./src/Workers/broadcastsCheckingWorker.ts', { type: 'module' } as any) (main.ts)
import { parentPort } from 'worker_threads';
^^^^^^

SyntaxError: Cannot use import statement outside a module
  1. importScripts('../services/BroadcastService') (worker.js/worker.ts)
importScripts('../services/BroadcastService')
^
ReferenceError [Error]: importScripts is not defined
  1. å legge til "type": "module" i package.json
TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts" for C:\Users\Administrator\Desktop\lives-downloader-bot\src\server.ts

Relaterte artikler