gpt4 book ai didi

javascript - 什么是 'tools for native modules' ?帮助新手决定是否有必要(NodeJS 安装)

转载 作者:行者123 更新时间:2023-12-05 04:33:57 24 4
gpt4 key购买 nike

我刚刚开始我的 NodeJS 类(class),讲座是在 NodeJS 版本 10(在 Mac 上)时录制的。我在 Windows 上,现在是 16 版。讲座不包含安装屏幕的此页面:

Installation wizard screenshot

总结:我不知道我是否想要原生模块,或者它们是什么——但我不想要巧克力。

我已经完成了研究,但我仍然无法在任何地方找到任何可以为我解决以下问题的东西。

1.我的问题:
这些 原生模块有多重要?我需要它们吗?或者您推荐它们,为什么?

2.巧克力:
出于兴趣,也许你能告诉我为什么 NodeJS 原生模块和 Chocolatey 捆绑在一起?

我决定不想要巧克力(没问题,如果我决定安装“工具”,那么我将转到 GitHub 并手动安装它们,如屏幕截图所示。)

我不想要 chocolatey 的原因是:根据我的研究,我认为我需要 chocolatey 并且我已经看到卸载 chocolatey 可能会导致我一个或两个问题,所以我会一起避免它们 - 但我想我会在旁边提到这一点,因为也许有人知道将它们捆绑在一起的一个非常正当的理由,这会改变我的想法。

非常感谢 Stack Overflow 社区。

最佳答案

native 模块需要编译,通常(但不限于)从 C/C++ 源代码编译,以便运行。有些人像避免癌症一样避开它们,因为它们需要在安装时编译,这可能是部署风险。其他人(像我一样)拥抱原生模块是因为它们可以带来性能优势。

请注意,这不是 Javascript 或 Node.js 独有的概念。 Ruby 和 Python 等其他语言也有“模块”(以其他名称命名),这些模块涉及编译 native 代码以实现同样的功能。

至于为什么 Node.js 使用 Chocolatey 来管理它的原生工具链,是因为 Chocolatey 已经有了它需要的工具包。维护这些工具的单独 NPM 包没有意义,依赖现有包可以减少安装大量工具和实用程序的大量开销。此外,Chocolatey 可以安装在系统范围内或仅供特定应用程序使用。我不确定 Node.js 使用哪种技术,但如果它询问,我假设它想使用系统范围的配置。

如果您不想使用 Chocolatey,则必须自行管理 native 工具链。如果您告诉它使用 Chocolatey,您可以使用 choco upgrade 命令管理工具链升级。


也就是说,如果我是你,我会考虑探索 Chocolatey。它使 Windows 上的包管理变得更加容易。它几乎是第 3 方解决方案所能达到的标准,部分原因是它基于 nuget 构建,并且您可以使用 PowerShell 在技术上管理 Chocolatey 程序包 而无需 安装 Chocolatey (尽管我不推荐这样做,只需使用 Chocolatey)。

关于javascript - 什么是 'tools for native modules' ?帮助新手决定是否有必要(NodeJS 安装),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71275043/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com