You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js中如何在Worker线程中使用ES6 import语法?

在Node.js Worker线程中使用ES6 Import的正确方式

要解决SyntaxError: Cannot use import statement outside a module错误,无需转译代码的核心是让Node.js将Worker线程文件识别为ES模块,以下是两种可行方案:

方案1:全局启用ES模块(推荐)

在项目根目录的package.json中添加"type": "module"字段,让Node.js默认把所有.js文件当作ES模块处理:

{
  "type": "module"
}

修改后,你的app.js和worker_thread.js中的import语法都会正常生效,Worker的创建代码无需改动。

方案2:单独指定Worker的模块类型

如果不想全局设置ES模块,可按以下步骤调整:

  • 确保主文件(app.js)被识别为ES模块:要么将其重命名为app.mjs,要么在package.json中添加"type": "module"(因为你的主文件已经用了import,这一步是必须的,否则主文件本身也会触发相同的语法错误)。
  • 创建Worker时,在构造函数中传入type: 'module'选项,明确指定该Worker文件为ES模块:
// 修改app.js中的Worker创建代码
const worker = new Worker('./worker_thread/index.js', { type: 'module' })

这样Worker线程就能正常使用ES6的import特性,同时兼容项目中其他CommonJS模块(如果存在的话)。

注意事项

确保你的Node.js版本在14.13.0及以上,该版本开始稳定支持ES模块在Worker线程中的使用。

内容的提问来源于stack exchange,提问作者Amitprj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 00:42:46