我正在尝试在Node.js中掌握ES6导入语法,并尝试使用此示例提供的语法:
Cheatsheet链接
我正在查找支持表,但我无法找到哪个版本支持新的导入语句(我尝试搜索文本import/require)。我目前正在运行Node.js 8.1.2,并且认为因为cheatsheet是指 .js 文件,它应该可以与 .js 文件一起使用。
当我运行代码(取自cheatsheet的第一个示例)时:
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
语句?
{"type": "module"}
,才能使用 ES6 的 import 语法。根据文档,当最近的父级 package.json 文件包含顶级字段"type"
并且值为"module"
时,文件名以 .js 结尾或没有扩展名的文件将被作为 ES 模块加载。更多信息请参见:https://nodejs.org/api/esm.html#esm_package_json_type_field - Lukas Liesis