将 MERN 应用程序部署到 digitalocean 时出现意外的令牌导出

Unexpected token export when deploying a MERN app to digitalocean

我正在尝试将 MERN 应用程序部署到 digital 海洋水滴。我已经使用 nodemon 并通过“npm 运行 dev”同时 运行 我的应用程序。 运行ning 在我的本地机器上一切正常,但是当我 git 将项目克隆到 Droplet 并尝试 npm 运行 dev 到 运行 远程应用程序时服务器,我得到:

SyntaxError: Unexpected token export

我什至删除了发生错误的中间件并再次尝试 运行,但错误发生在我代码的其他地方。从昨天开始我就一直坚持这个。你有什么想法吗?

您应该检查服务器上的 Node 版本。很可能它更旧并且您正在使用 ES6 导出。

如果你有支持 ES6 的正确版本,那么你应该确保你已经启用它(因为 CommonJS 是默认选项)。来自 the docs:

  • .mjs.

    结尾的文件
  • 当最近的父 package.json 文件包含值为 "module".[=19 的顶级“类型”字段时,文件以 .js 结尾=]

  • 字符串作为参数传递给 --eval,或通过 STDIN 管道传递给 node,带有标志 --input-type=module.