我正在尝试在 Node.js 中掌握 ES6 导入的窍门,并尝试使用此示例中提供的语法:
Cheatsheet Link
我正在浏览 the support table ,但我找不到支持新导入语句的版本(我尝试查找文本导入/要求)。我目前正在运行 Node.js 8.1.2,并且还相信由于备忘单指的是 .js 文件,因此它应该适用于 .js 文件。
当我运行代码时(取自备忘单的第一个示例):
import { square, diag } from 'lib';
我得到错误:
SyntaxError: Unexpected token import.
对我正在尝试导入的库的引用:
//------ 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.js has included experimental support for ES6 support. Read more about here: https://nodejs.org/docs/latest-v13.x/api/esm.html#esm_enabling.
TLDR;
Node.js >= v13
在 Node.js 13 及更高版本中非常简单。您需要:
- 使用
.mjs
扩展名保存文件,或 - 在最近的
package.json
中添加{ "type": "module"}
。
您只需要执行上述操作之一即可使用 ECMAScript 模块。
Node.js <= v12
如果您使用的是 Node.js 版本 9.6 - 12、保存带有.mjs
扩展名的ES6模块文件并运行如下:
node --experimental-modules my-app.mjs
关于node.js - 如何在 Node.js 中使用 ES6 导入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45854169/