小编典典

如何在 Node.js 中使用 ES6 导入?

all

我正在尝试在 Node.js 中掌握 ES6 导入的窍门,并尝试使用此示例中提供的语法:

[备忘单链接](https://hackernoon.com/import-export-default-require-commandjs-

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陈述?


阅读 148

收藏
2022-03-11

共1个答案

小编典典

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
2022-03-11