非常精彩的 NPM 包
is-positive
is-not-positive
is-negative
true
结论
我不知道该说什么。 #116
最近我在浏览 NPM(什么?)的时候,发现了一些非常有趣且引人入胜的软件包。当然,我把最有趣的一个留到了最后😬。
is-positive
正是这个软件包开启了我对 NPM 上 683162 个软件包的深入探索(到我发布这篇文章时,这个数字可能已经更多了)。
事实证明,这个包确实会返回参数是否为正数。
const isPositive = require('is-positive');
isPositive(1);
//=> true
这就是它的全部功能。我思考了一下这个软件包可能有哪些用途,因为显然有很多用途。
我在浏览DependentsNPM 提供的部分时(共有 4 个),发现了另一个隐藏的宝藏。
is-not-positive
这个软件包的功能与原软件包的功能完全相反is-positive。它的描述非常贴切。
is-negative
由于这是 JavaScript,非正数可能并不意味着负数,因此必须创建一个新的包来检查负数。
这个软件包的负面效果甚至从其每周的下载量就能看出来,其下载量远低于其更受欢迎的同类软件包。
true
有趣的部分来了。我是在输入了一些其他搜索词,比如“ ”和“ ”true之后,偶然发现这个的。结果发现,这实际上是Unix实用程序的移植版。is-wrongwoahtrue
与所有 Unix 工具一样,它的用法很容易掌握。
var t = require('./true')
var myTrueValue = t();
console.log(myTrueValue === true); // Logs 'true'
然而,我觉得这个软件包比其他软件包有点可疑,因为它使用了…… var。因此,我决定查看一下它在 GitHub 上的一些未解决的问题。你绝对想不到接下来发生了什么。
我感到被背叛了。
事实证明,代码中存在一个严重漏洞,这是Patrick Steele-Idem发现的,他花了几个小时才追踪到问题所在。
原来是另一个库中包含了以下代码,导致true返回false。
require.cache[require.resolve('true')].exports = function() {
return false;
};
幸运的是,他很快就想出了一个解决办法。
setInterval(function() {
if (require('true')() !== true) {
// Fix it!
require.cache[require.resolve('true')].exports = function() {
return true;
};
}
}, 10);
结论
总的来说,重新发现这些精彩的包裹对我来说是一次非常愉快的经历。我可能以后不会再这么做了。
文章来源:https://dev.to/ravernkoh/very-fascinating-npm-packages-7ib



