首页 >web前端 >js教程 >为什么我在 Node.js 中收到'SyntaxError: Unexpected token import”?

为什么我在 Node.js 中收到'SyntaxError: Unexpected token import”?

Linda Hamilton
Linda Hamilton原创
2024-12-19 04:41:53544浏览

Why Am I Getting a

Node.js:了解意外的令牌导入错误

在 Node.js 中,通常会遇到错误“SyntaxError: Unexpected token import”表示您正在尝试在不受支持的环境中使用导入语法。

导入语法是 ES6 (ECMAScript 2015) 的一项功能,允许您导入模块。不过,在 Node.js 中,随着不同版本的发布,已经逐渐引入了对 ES6 模块导入的支持。

Node.js 版本中对 ES6 模块的支持

  • 节点 13 : 通过 import 导入模块是稳定且完全支持的。您可以使用 .mjs 文件或在 package.json 文件中设置 "type": "module"。
  • Node 12: 与 Node 13 类似,您可以使用 .mjs 文件导入模块或者在 package.json 中使用 "type": "module"。但是,您需要使用 --experimental-modules 标志运行 Node。
  • Node 9: 在 Node 9 中,模块导入仍处于实验阶段,需要使用 .mjs 文件和--experimental-modules 标志。

在 Node 13 之前,ES6 模块导入是不支持

在 Node.js 13 之前的版本中,导入语法本身不受支持。因此,如果您在早期版本中遇到此错误,那是因为您尝试使用运行时环境不支持的 JavaScript 构造。

回退到经典 Require 语句

要解决此问题,您需要恢复使用经典的 require 语句来在不支持导入的 Node.js 版本中导入模块。例如:

const express = require("express");

使用 Babel 实现 ES6/7 功能

如果你想在 Node.js 中使用 ES6/7 功能,你可以编译你的代码使用巴别塔。 Babel 是一个 JavaScript 转译器,可将较新的 JavaScript 语法转换为与旧环境兼容的代码。这是使用 Babel 编译服务器的示例:

npm install --save-dev babel-cli babel-preset-env
npx babel-node script.js

以上是为什么我在 Node.js 中收到'SyntaxError: Unexpected token import”?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn