我试图ES6在节点中陷入进口的泥潭,并试图使用此示例中提供的语法:
ES6
javascript-nodejs-es6-vs-cheatsheet-different-tutorial-example-5a321738b50f)
我正在浏览支持表,但无法找到哪个版本支持新的导入语句(我尝试查找文本导入/请求),我目前正在运行节点8.1.2,并且还认为由于备忘单是引用.js文件,它应该与.js文件一起使用。
当我运行代码时(摘自备忘单的第一个示例):
import { square, diag } from 'lib';
我得到错误:
SyntaxError: Unexpected token import.
我要导入的对lib的引用:
//------ 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;
节点 > = v13
在Node 13及更高版本中,这非常简单。您需要:
.mjs
{ "type": "module" }
package.json
您只需执行上述操作之一即可使用ES模块。
节点 <= v12
如果您使用的是节点版本8-12,请使用.mjs扩展名为ES6的模块保存文件,然后按以下方式运行:
node --experimental-modules my-app.mjs