当前位置: 首页 > 面试题库 >

如何在节点中使用es6导入?

南门展
2023-03-14
问题内容

我试图ES6在节点中陷入进口的泥潭,并试图使用此示例中提供的语法:

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

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.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


 类似资料:
  • 长话短说,我试图在CommonJS模块中使用一个只有ES6模块入口点的npm包,即(GitHub),因为我的整个50多个模块的应用程序都是在CommonJS中构建的。根据节点文档,这样做的标准方法是使用函数。我使用以下代码尝试了这种方法: 但是,这会导致包出错,而不一定是上面的导入函数: 有没有一种方法可以绕过这个问题,这样我就可以在CommonJS模块中使用这个包了?

  • 用例很简单:我只想导出一个名称与导入时相同的对象。 例如: 但这并不起作用。我必须写: 但这很奇怪。正确的方法是什么? 更新: 感谢帮助和参考。我用许多线索解决了我的问题。下面给大家分享一些我常见的案例和解决方法。

  • 我试图在Node.js中掌握ES6导入的技巧,并尝试使用本示例中提供的语法: 我正在浏览支持表,但我无法找到支持新导入语句的版本(我试图寻找文本导入/要求)。我目前正在运行Node.js8.1.2,并且还相信,由于小抄引用的是. js文件,它应该与. js文件一起工作。 当我运行代码时(取自备忘单的第一个例子): 我得到的错误: 语法错误:意外的令牌导入。 对我尝试导入的库的引用: 我遗漏了什么?

  • 问题内容: 我在玩和使用和。我想在不同的文件中构建多个组件,将其导入单个文件并将其捆绑在一起 假设我有几个这样的组件: my-navbar.jsx main-page.jsx 使用webpack并按照其教程进行操作,我有: 构建项目并运行它之后,在浏览器控制台中出现以下错误: 我究竟做错了什么?如何正确导入和导出组件? 问题答案: 尝试 默认设置 组件中的导出: 通过使用默认值,您表示将成为该模块

  • 问题内容: 有人可以为我提供关于类对象的一些指导,以及如何在我的项目中的另一个对象中引用它吗? 这是我的对象-request-api.js(注意:我知道它还没有进行很多操作,但是我想走路之前要走路) 这是我试图在其中引用的React Class组件: 我的React Component Class对象出现错误: 谁能为我提供一些见识/帮助? 问题答案: 由于不是静态方法,因此您需要先创建的实例,然

  • 问题内容: 我开始认为这是不可能的,但是无论如何我都想问。 我想测试我的一个ES6模块以特定方式调用另一个ES6模块。有了茉莉花,这非常容易- 应用程式码: 和测试代码: 笑话相当于什么?我觉得这是一件很想做的简单的事,但是我一直在努力尝试弄清头发。 我最接近的是将s 替换为s,并将其移入测试/函数中。都不是我想做的事情。 为了获得加分,我希望在其中的功能为默认导出时使整个工作正常进行。但是,我知