获得意外的令牌导出

新手上路,请多包涵

我正在尝试在我的项目中运行一些 ES6 代码,但我收到了意外的令牌导出错误。

export class MyClass {
  constructor() {
    console.log("es6");
  }
}

原文由 Jason 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 737
1 个回答

2022 年更新

您正在使用 EcmaScript 模块(ESM 或“ES6 模块”)语法,但您的环境不支持它。

v14.13.0 之前的 NodeJS 版本不支持 ESM( export 关键字语法)并使用 CommonJS 模块( module.exports 属性语法)。 NodeJS v14.13.0 及更新版本支持 ESM,但必须先启用它。

解决方案:

  • 如果您使用的是 NodeJS v14.13.0 或更新版本(支持 ESM),您可以通过在项目中设置 "type":"module" 启用它 package.json
  • 使用 CommonJS 模块语法重构(适用于旧版本的 NodeJS)
  • 考虑将 TypeScriptts-nodets-node-dev npm 包(用于开发时的即时编译)一起使用,并将 TypeScript 写入 .ts 文件中
  • 使用 esbuildesbuild npm 上的包)将 ESM 转译为 CommonJS,配置为将你的 ES6 javascript 转译为你的环境支持的 CommonJS 目标。 (不再推荐 babel

原文由 Phil Ricketts 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题