매우 매력적인 NPM 패키지
5393 단어 fascinatingsatiricalnodenpm
양성이다
이것은 내가 NPM의 683162 패키지의 깊이에 대한 심층 분석을 시작한 패키지였습니다(아마 내가 이 글을 게시할 때쯤이면 더 많을 것입니다).
결과적으로 이 패키지는 실제로 인수가 양수인지 여부를 반환합니다.
const isPositive = require('is-positive');
isPositive(1);
//=> true
그게 전부입니다. 이 패키지의 가능한 사용 사례에 대해 숙고했습니다. 분명히 많기 때문입니다.
NPM에서 제공하는 Dependents
섹션(4개)을 살펴보던 중 또 다른 숨겨진 보석을 발견했습니다.
양성이 아님
이 패키지는 is-positive
가 수행하는 것과 정반대입니다. 그 설명은 믿을 수 없을 정도로 적절합니다.
음수
이것은 JavaScript이고, 양성이 아닌 것은 아마도 음성이라는 것을 의미하지 않으므로 부정성을 확인하기 위해 새 패키지를 만들어야 했습니다.
이 패키지의 부정성은 주간 다운로드를 통해서도 명백해졌습니다. 이는 더 눈부신 상대보다 훨씬 적습니다.
진실
여기에서 true
재미가 시작됩니다. "is-wrong
"및 "woah
"와 같은 몇 가지 다른 검색어를 입력한 후 우연히 이것을 우연히 발견했습니다. 이것은 실제로 Unix 유틸리티true
의 포트임이 밝혀졌습니다.
모든 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);
결론
전반적으로, 이 모든 멋진 패키지를 (재)발견하는 것은 저에게 매우 보람된 경험이었습니다. 나는 아마 다시는 이것을하지 않을 것입니다.
Reference
이 문제에 관하여(매우 매력적인 NPM 패키지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/ravernkoh/very-fascinating-npm-packages-7ib
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
const isPositive = require('is-positive');
isPositive(1);
//=> true
이 패키지는
is-positive
가 수행하는 것과 정반대입니다. 그 설명은 믿을 수 없을 정도로 적절합니다.음수
이것은 JavaScript이고, 양성이 아닌 것은 아마도 음성이라는 것을 의미하지 않으므로 부정성을 확인하기 위해 새 패키지를 만들어야 했습니다.
이 패키지의 부정성은 주간 다운로드를 통해서도 명백해졌습니다. 이는 더 눈부신 상대보다 훨씬 적습니다.
진실
여기에서 true
재미가 시작됩니다. "is-wrong
"및 "woah
"와 같은 몇 가지 다른 검색어를 입력한 후 우연히 이것을 우연히 발견했습니다. 이것은 실제로 Unix 유틸리티true
의 포트임이 밝혀졌습니다.
모든 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);
결론
전반적으로, 이 모든 멋진 패키지를 (재)발견하는 것은 저에게 매우 보람된 경험이었습니다. 나는 아마 다시는 이것을하지 않을 것입니다.
Reference
이 문제에 관하여(매우 매력적인 NPM 패키지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/ravernkoh/very-fascinating-npm-packages-7ib
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
여기에서
true
재미가 시작됩니다. "is-wrong
"및 "woah
"와 같은 몇 가지 다른 검색어를 입력한 후 우연히 이것을 우연히 발견했습니다. 이것은 실제로 Unix 유틸리티true
의 포트임이 밝혀졌습니다.모든 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);
결론
전반적으로, 이 모든 멋진 패키지를 (재)발견하는 것은 저에게 매우 보람된 경험이었습니다. 나는 아마 다시는 이것을하지 않을 것입니다.
Reference
이 문제에 관하여(매우 매력적인 NPM 패키지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/ravernkoh/very-fascinating-npm-packages-7ib
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(매우 매력적인 NPM 패키지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ravernkoh/very-fascinating-npm-packages-7ib텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)