运行“npm install”时,“x 软件包正在寻找资金”是啥意思?

Posted

技术标签:

【中文标题】运行“npm install”时,“x 软件包正在寻找资金”是啥意思?【英文标题】:What does 'x packages are looking for funding' mean when running `npm install`?运行“npm install”时,“x 软件包正在寻找资金”是什么意思? 【发布时间】:2020-03-17 05:28:08 【问题描述】:

react 项目上运行npm install 时,我通常会得到"x packages are looking for funding."。知道这意味着什么吗?

【问题讨论】:

版主注意:这个问题现在是being discussed on Meta。请把所有关于它是否是主题的讨论都留在那里,而不是把 cmets 留在这里。 【参考方案1】:

当您在命令提示符下运行npm update 时,它会建议您键入一个名为npm fund 的新命令。

当您运行 npm fund 时,它将列出您安装的所有模块和软件包,这些模块和软件包是由需要 资金 用于其 IT 项目的公司或组织创建的。您将看到一个网页列表,您可以在其中向他们汇款。所以“资金”的意思是“你安装的 Angular 软件包可以使用你的一些钱来帮助支持他们的业务”。

它基本上是您拥有的需要为其项目捐款或捐款的模块的列表,以及您可以输入信用卡以帮助支付费用的网站列表。

【讨论】:

请注意,这是一个 npm 功能,它并不特定于 Angular。使用 React 或 Vue 或其他任何东西,你都会得到同样的信息。 直到现在我都认为npm fund 做了一些关于依赖解析的事情。所以这个答案得到了赞成。 有趣。我真的在阅读消息时想到了它,但为了确定而用谷歌搜索了它 这里也一样。我想大多数使用 node 的人也认为 npm fund 会解决一些关于包依赖的问题。【参考方案2】:

npm 决定添加一个新命令: npm fund 这将使 npm 用户更清楚地了解哪些依赖项正在积极寻找资助他们的工作的方法。

npm install 还会在末尾显示一条消息,以让用户知道依赖项正在寻找资金,如下所示:

$ npm install
packages are looking for funding.
run `npm fund` for details.

运行 npm fund <package> 将在您的浏览器中打开为该给定包列出的 URL。

For more details look here

【讨论】:

npm 是一个包管理器,因此它应该坚持管理包业务,而不是“让请求资金的人可见”。那应该是另一个命令,例如“show-who-need-funds” @GianlucaGhettini 问题是现有软件包在安装过程中已经在打印请求资金/捐赠的消息。让 npm 打印一条消息比让 20 个不同的包打印他们自己的捐赠请求要好得多。几乎唯一的选择是:添加此功能,让包裹继续打印自己的消息,或者在不提供任何替代方案的情况下禁止此类消息。他们并不是真的想通过强加最后一个选项来惹恼软件包开发人员,所以他们想要第一个。 @GianlucaGhettini 我认为从包中请求资金也是管理包的一部分,因此 npm 使用此功能并没有错。 @ErisanOlasheni 我认为管理包意味着安装/卸载/更新包。故事结局。您是否见过 Linux 命令“ls”要求同时执行其他操作,例如创建、删除、重命名文件?【参考方案3】:

首先,尽可能支持开源开发人员,他们将大量(空闲)时间投入到这些软件包中。但是如果你想摆脱资金消息,你可以配置 NPM 来关闭这些。执行此操作的命令是:

npm config set fund false --global

...或者如果您只是想为特定项目关闭它,请在项目目录中运行它:

npm config set fund false 

有关实施此功能的详细信息,请参阅@Stokely 和@ArunPratap 的答案。

【讨论】:

解释得很好,你开始很好:请支持他们,但是hhmmm,如果我认为是正确的,好吧,算了吧,走你的路,这就是诀窍;)跨度> @Timo 乍一看可能是这样,但还有其他原因可以关闭它。例如。我的公司支持几个包作者,所以我的所有开发团队每次运行更新时都不需要在他们的屏幕上显示这些消息。 (为此,我们将fund=false 放入项目的.npmrc 文件中。)【参考方案4】:

您可以使用以下方式跳过资金:

npm install --no-fund YOUR PACKAGE NAME

例如:

npm install --no-fund core-js

如果需要安装多个包:

npm install --no-fund package1 package2 package3

【讨论】:

但是我有59个包,有没有办法一步跳过资金或者我必须为单个包单独做? alias npmi='npm install --no-fund' 更好:alias npm='npm --no-fund' 更好:Linux 上的echo "npmf='npm install --no-fund'" >> ~/.bash_aliases && source ~/.bash_aliases 更好:npm config set fund false --global(来自Jeroen Landheer对这个问题的回答)【参考方案5】:

首先,这不是错误或警告。如果您希望向构建您在项目中安装/使用的软件包的公司/个人或个人捐赠一些钱,这基本上是一个消息,以查看哪个软件包,只需在您的终端中输入

npm fund

以及下面要捐赠的软件包名称及其网站 URL 的列表。 我希望这会有所帮助..

【讨论】:

【参考方案6】:
npm fund [<pkg>]

此命令检索有关如何为给定项目的依赖项提供资金的信息。如果没有提供包名称,它将以树状结构列出所有正在寻找资金的依赖项,其中列出了资金类型和要访问的 url。 可以使用以下命令禁用该消息:npm install --no-fund

【讨论】:

【参考方案7】:

这些是开源项目(或开发人员),可以使用捐款来资助他们的业务。

在 npm 中,npm fund 命令将列出您可以资助的网址

在作曲家中,命令composer fund 将执行相同的操作。

虽然上面提到了一些可以用来摆脱资助信息的选项,但如果可以的话,尽量支持这项事业。

【讨论】:

【参考方案8】:
npm config set false --global 
npm config set fund false

【讨论】:

欢迎来到 ***。虽然这些命令可能会回答问题,但提供有关 如何 和/或 为什么 他们解决问题的附加上下文将提高​​答案的长期价值。此外,已经有一个公认的答案......【参考方案9】:
npm install --silent

似乎压制了资金问题。

【讨论】:

问题不是要压制消息,而是要理解它的含义!【参考方案10】:

我建议不要隐藏资助信息。它仅供参考。 至少,它们会让您了解第 3 方 npm 包面临的潜在风险。

【讨论】:

以上是关于运行“npm install”时,“x 软件包正在寻找资金”是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

当我运行`npm install`时,它返回`ERR!代码 EINTEGRITY` (npm 5.3.0)

当我运行“npm install”时,我遇到了我不明白的 npm 问题

运行 npm install 时多次调用回调

我在运行 npm install 时遇到问题

运行npm install时found 9351 high severity vulnerabilities

npm 错误! cb() 从未调用过!尝试运行 npm install 命令时出错