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

使用Node.js require与ES6导入/导出

傅高逸
2023-03-14
问题内容

在我正在合作的项目中,关于可以使用哪种模块系统,我们有两个选择:

  1. 导入使用的模块require,并使用导出module.exportsexports.foo
  2. 使用ES6导入模块import,并使用ES6导出export

相互使用是否对性能有好处?如果要在Node模块上使用ES6模块,还有其他什么应该知道的吗?


问题答案:

相互使用是否对性能有好处?

请记住,还没有JavaScript引擎本身支持ES6模块。您说自己正在使用Babel。无论如何,Babel都会默认将其转换importexport声明为CommonJS(require/
module.exports)。因此,即使您使用ES6模块语法,但如果在Node中运行代码,也将在后台使用CommonJS。

CommonJS和ES6模块之间存在技术差异,例如,CommonJS允许您动态加载模块。ES6不允许这样做,但是正在为此开发一个API。

由于ES6模块是标准的一部分,因此我将使用它们。



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

  • 我有一个javascript文件 当我使用es6导入/导出并执行时 这是一个未定义的给予。 它给出了一个空的module.exports对象。 我的问题是-为什么在es6导入/导出的情况下没有定义。

  • 问题内容: 我目前正在玩React Native。我正在尝试构建我的应用程序,但是它开始变得杂乱无章。 现在,在我的能力范围内,我可以轻松做到: 但是,当我开始创建更多具有更深目录结构的组件时,它开始变得混乱: 我知道首选的解决方案是为事情创建私有npm模块,但这对于一个小型项目来说是过大的。 您可以在浏览器上执行类型解决方案,但是如何通过导入实现呢? 问题答案: React也有同样的问题。因此,

  • 如果我使用ES6中的,那么我的所有Jest测试都会失败,并出现错误: 意外保留字 我将测试对象转换为使用老式IIFE语法,突然我的测试通过了。或者,以更简单的测试用例为例: 同样的错误。显然这里的导入/导出有问题。对我来说,仅仅为了让我的测试框架开心而使用ES5语法重写代码是不现实的。 我有巴别塔笑话。我尝试了GitHub问题的各种建议。这是不可能的。 有解决办法吗?

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

  • 问题内容: 通过使用,我可以在 文件名 内包含并执行代码,而无需在 文件名 内定义任何导出。 ES6中使用的等效项是什么? 谢谢 问题答案: 等效的就是: 以下是一些可能的语法变体: 消息来源: MDN