Комментарии 14
Это сработает только в том случае, когда сторонние библиотеки не используют moment, и не тянут его в качестве зависимости. В обратном же случае вариантов не так много, например можно "изобретать велосипед", однако это не всегда возможно.
Похоже на хак, может в любой новой версии поменяться структура объекта. Не зря они, они эти свойства пометили нижним подчеркиванием, как приватные свойства.
Похожий хак в своё время применили для cytoscape.js — тоже пришлось влезть в приватные поля и подменить одну функцию, чтобы пользователь мог таскать узлы по экрану, и после этого layout уже не мог их сдвинуть. До сих пор не вполне этим доволен, особенно учитывая, что мы работаем с TypeScript, и этот кусок весь был сплошь усыпан as any
(потом его переписали слегка поприятнее), но оно работает так, как нужно заказчику, а это здесь главное.
Что-то тоже интересно стало. Стоит отметить, что полученное решение все же быстрее практически в 2 раза.
Рассказ о решении проблемы с производительностью Moment.js