您可以一次要求所有节点模块吗[关闭]

Posted

技术标签:

【中文标题】您可以一次要求所有节点模块吗[关闭]【英文标题】:Can you require all node modules at once [closed] 【发布时间】:2020-01-16 02:13:33 【问题描述】:

目前,每当我想在 node.js 标准库中使用不属于全局对象的模块时,例如readFileSync(),我需要/导入该功能所属的模块,在此示例中,即为 fs 模块。全局对象列表供参考:(https://nodejs.org/api/globals.html)。

有没有办法要求/导入所有 node.js 标准库,即让所有 node.js 标准库在我的程序中可用?

【问题讨论】:

您想这样做的原因是什么?某些包,例如 React,需要在每个“.jsx”文件中导入/需要。如果我理解正确,您想使用某个全局变量下的所有包吗?我不明白你怎么会在 Python 中做到这一点......如果你需要使用requests,你不是必须在每个需要使用它的.py 文件中使用import requests 吗?任何包都一样,比如import json,等等……从这个意义上说,Python 是如何带有“包含电池”的? @MattOestreich 我编辑了这个问题 - 你对 python 导入是正确的,我忘了你必须导入你需要的库。 process 模块是“标准库”的一部分,也就是内置于节点中的...您不必要求process 才能使用exit() - 您只需使用@ 987654332@ 在您的应用程序中的任何位置...... @MattOestreich 是的,process.exit() 在没有require 的情况下工作,这对我来说应该更容易。虽然同样的事情对fs.readFileSync 不起作用。所以有些“标准库”是全局的,有些不是。我在文档中找到了一个全局变量列表:nodejs.org/api/globals.html @MattOestreich 我再次更新了问题以使用正确的术语。 【参考方案1】:

不,您不能同时要求所有节点模块。有数以万计的可能模块,一些内置在 node.js 中,一些只有在您将它们安装到项目中时才可用。为了模块化,您将在该模块中需要的模块导入到每个模块中。这样做是为了使模块成为模块化的,以便它们准确地声明需要导入的内容以及只需要导入的内容。

这与其他一些环境有点不同的思维方式,但是一旦您习惯了它,它就会工作得很好,并且使代码重用变得更加清洁和容易。每个模块文件的开头应导入您需要在该模块中使用的外部模块。

【讨论】:

我更新了问题以具体说明节点标准库 @leonsegal - 如果不单独加载每个标准库,仍然无法导入所有标准库。它们是必须加载和运行才能使用它们的 javascript 片段。我真的建议您习惯于在模块顶部使用一些 require()import 语句来声明每个模块的外部依赖项。一旦你习惯了它就可以正常工作并且有很多好处。试图破坏系统真的不值得。这就是 node.js 的工作方式。这就是模块化环境的工作方式。

以上是关于您可以一次要求所有节点模块吗[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

您如何使用新的、安全的默认设置在 Electron 中“要求”外部模块?

您要求的商品在任何商店都没有[关闭]

自动完成关闭 vs 错误?

C++ 控制台程序在完成前关闭。

GPU图像过滤器[关闭]

nodejs 连接mysql数据库进行增删改查操作,是进行一次操作就要 connnect 一次数据库 然后关闭吗?