NPM 公司,JavaScript 包管理器 npm 的维护者。今年8 月份时,Standard JS在项目中实验性内置广告的事件引发热议,这些广告通过一个名为Funding的npm软件包展示在终端,该软件包包含在Standard的代码库中。之后NPM公司宣布将禁止此类终端广告行为。
此事件后,NPM表示,它打算在今年年底前为开源开发人员开发一个众筹平台。根据 The Register 报道,它已经在此承诺上迈出了一步。
本周周二,该公司修改了最新版 npm 6.13.0 的代码,添加了“funding”命令。它的作用是让维护 npm 的开发人员(为Node.js 创建包)声明元数据,为有意愿的捐赠者指明捐赠平台。在 package.json 文件中添加了一个“funding” 字段,这个文件列出了各种模块设置和依赖项。funding 可指向在线捐赠服务的 url,如 Patreon、Open Collective、GitHub Sponsors、License Zero 或者其他支付网站。
之后,使用这些包的应用程序程序员可运行 npm fund,为指定的包的作者进行捐赠,该命令在用户的默认浏览器中打开指定的捐赠服务链接,以操作信用卡进行捐赠等。下图可以看到,npm ls 与 npm fund 的区别,ls 只列出包名,而 fund 还列出了捐赠平台及其 url。
33 packages are looking for funding run `npm fund` for details D:\GitHub Project\pay>npm fund pay-ts@0.1.0 +-- core-js@3.6.2, core-js-compat@3.6.2 | +-- type: opencollective | `-- url: https://opencollective.com/core-js +-- @babel/core@7.7.7 | +-- type: opencollective | `-- url: https://opencollective.com/babel +-- webpack@4.41.5, schema-utils@2.6.1, terser-webpack-plugin@2.3.1, copy-webpack-plugin@5.1.1, css-loader@3.4.1 | +-- type: opencollective | +-- url: https://opencollective.com/webpack | `-- glob@7.1.6 | `-- url: https://github.com/sponsors/isaacs +-- browserslist@4.8.3 | +-- type: tidelift | `-- url: https://tidelift.com/funding/github/npm/browserslist +-- has-symbols@1.0.1, resolve@1.14.2, is-date-object@1.0.2, is-symbol@1.0.3, es-to-primitive@1.2.1, is-callable@1.1.5, is-regex@1.0.5, object-inspect@1.7.0, string.prototype.trimleft@2.1.1, string.prototype.trimright@2.1.1, es-abstract@1.17.0, object.values@1.1.1, object.getownpropertydescriptors@2.1.0, object-is@1.0.2, regexp.prototype.flags@1.3.0, deep-equal@1.1.1 | `-- url: https://github.com/sponsors/ljharb +-- p-limit@2.2.2 | `-- url: https://github.com/sponsors/sindresorhus +-- find-cache-dir@3.2.0 | `-- url: https://github.com/avajs/find-cache-dir?sponsor=1 +-- picomatch@2.2.1 | `-- url: https://github.com/sponsors/jonschlinkert +-- autoprefixer@9.7.3 | +-- type: tidelift | `-- url: https://tidelift.com/funding/github/npm/autoprefixer +-- postcss@7.0.26 | +-- type: tidelift | `-- url: https://tidelift.com/funding/github/npm/postcss +-- ansi-styles@4.2.1 | `-- url: https://github.com/chalk/ansi-styles?sponsor=1 `-- loglevel@1.6.6 +-- type: tidelift `-- url: https://tidelift.com/subscription/pkg/npm-loglevel?utm_medium=referral&utm_source=npm_fund
NPM公司的联合创始人和联合首席技术官 Isaac Schlueter在电话采访中说:“在开源领域,资金是一个长期存在的问题,我们正在解决开源项目需要资金的难题,但很少有方法可以让使用的代码的人直观地了解这些信息,这种融资方式就可以做到”。
Schlueter 认为NPM 公司的融资机制有利有弊,有利的方面是它确实把一些营销技巧从方程式中剔除了出来,开发者只需要设置一个支付URL,然后把它放进“包“里,当该包管理器被安装时就自动出现在列表上。不利的影响是它很可能奖励的是优秀的营销人员,而不是奖励优秀的开发者。
但当被问及NPM 公司的融资平台是否有助于为NPM本身提供资金时,Schlueter说:
这是很有可能的,但我也不认为这是一个可增长收入的方式。我想强调的是不要让开源生态系统因为被耗尽而瓦解。