【问题标题】:Should core Node modules be listed in package.json核心 Node 模块是否应该在 package.json 中列出
【发布时间】:2021-09-16 13:02:34
【问题描述】:

我的代码使用核心 Node 模块,例如 fspath。是否有任何理由将它们包含在package.json (npm i fs path) 中? npm 路径的README 表示“这是发布到 NPM 注册表的 NodeJS 'path' 模块的精确副本。”为什么这些软件包每周有大约一百万次下载?

【问题讨论】:

    标签: node.js npm


    【解决方案1】:

    是否有任何理由将它们包含在package.json (npm i fs path) 中?

    。自 Node 发布以来,这些包已作为每个主要 Node 版本的一部分捆绑在一起。它们不需要单独安装或包含在您的package.json 文件中。


    为什么这些软件包每周有大约一百万次下载?

    我想你真的只能推测,但很可能有非零数量的新人不知道这些模块可作为 Node 核心的一部分并正在运行 npm install fs 等,遵循与某些人相同的想法他们正在审查的文档或教程。

    谨慎的做法是确保不仅在包含这些模块的情况下它们按预期工作,而且还要防止不道德的行为者域名抢注和启用dependency confusion vulnerabilitiesnpm page for the fs module 甚至明确说明了他们选择发布它的原因(强调我的):

    这个包名当前没有被使用,但以前被另一个包占用。 为了避免恶意使用,npm 会挂在包名上,但很松散,如果你想要的话,我们可能会给你。

    【讨论】:

    • 这就是我的想法,有人告诉我我需要这样做,我认为这很愚蠢,因为你列出的原因。我想知道是否有一种方法可以指示您使用这些核心模块,以防它们曾经从核心迁移并且会有一个备用 npm 包。
    • 在我个人看来,这些模块被迁移出核心的可能性非常小,甚至花时间考虑如何缓解这种情况都是没有意义的。
    【解决方案2】:

    正如similar question 中提到的,你不需要安装它,所以你不需要在package.json 中指定它。 fspath 也是 Node.js 的核心模块。

    对不起,我的英语不好。祝你有美好的一天!

    【讨论】:

      猜你喜欢
      • 2019-07-15
      • 1970-01-01
      • 2020-04-28
      • 2021-06-19
      • 2018-03-26
      • 1970-01-01
      • 1970-01-01
      • 2014-10-12
      • 2021-01-10
      相关资源
      最近更新 更多