我正在尝试在 Node.js 中掌握 ES6 导入的窍门,并尝试使用此示例中提供的语法:
javascript-nodejs-es6-vs-cheatsheet-different-tutorial-example-5a321738b50f)
我正在查看支持表,但找不到支持新导入语句的版本(我尝试查找文本导入/要求)。我目前正在运行 Node.js 8.1.2,并且还相信由于备忘单指的是 .js 文件,它应该适用于 .js 文件。
当我运行代码时(取自备忘单的第一个示例):
import { square, diag } from 'lib';
我得到错误:
SyntaxError:意外的令牌导入。
对我要导入的库的引用:
//------ lib.js ------ export const sqrt = Math.sqrt; export function square(x) { return x * x; } export function diag(x, y) { return sqrt(square(x) + square(y)); }
我错过了什么,我怎样才能node识别我的import陈述?
node
import
Node.js 包含对 ES6 支持的实验性支持。在此处阅读更多信息:https ://nodejs.org/docs/latest-v13.x/api/esm.html#esm_enabling 。
TLDR;
Node.js >= v13
在 Node.js 13 及更高版本中非常简单。您需要:
.mjs
{ "type": "module" }
package.json
您只需执行上述操作之一即可使用 ECMAScript 模块。
Node.js <= v12
如果您使用的是 Node.js 版本9.6 - 12,请使用带有扩展名的 ES6 模块 保存文件并运行它:.mjs
node --experimental-modules my-app.mjs