_Автор — [Дэвид Хейни][1] (David Haney), ведущий инженер-программист Stack Overflow_ Итак, разработчики, время для серьёзного разговора. Вы уже наверное в курсе, что на этой неделе React, Babel и куча других популярных пакетов на NPM сломались. Причина довольно удивительная. Простой пакет NPM под названием left-pad был установлен как зависимость в React, Babel и других пакетах. Модуль, который на момент написания этого поста, [имеет 11 звёзд на Github][2] (сейчас 323 — прим.пер). Весь пакет состоит из [11 простых строчек][3], которые реализуют примитивную функцию вставки пробелов в левой части строк. Если какие-то из ссылок когда-нибудь умрут, вот его код:
module.exports = leftpad;
function leftpad (str, len, ch) {
str = String(str);
var i = -1;
if (!ch && ch !== 0) ch = ' ';
len = len - str.length;
while (++i < len) {
str = ch + str;
}
return str;
}
Что меня беспокоит, так это _такое большое количество пакетов_, где установлена **зависимость** от простой функции набивки строки пробелами, вместо того чтобы потратить 2 минуты и написать эту базовую функцию самому. [Читать дальше →][4]
[1]:
https://twitter.com/@haneycodes
[2]:
https://github.com/azer/left-pad
[3]:
https://github.com/azer/left-pad/blob/master/index.js
[4]:
https://habrahabr.ru/post/280099/#habracut