mcmraak
@mcmraak
php+sql+js+bicycle+crutches

Vue.js возможно ли без костылей переопределить файл компонента из node_modules?

Для примера: в проектах vue cli я часто использую известный компонент vue-select он довольно удобный но у него нет того что мне нужно, а именно отображения опций в виде html-кода а не текста. Я легко могу изменить файл node_modules/vue-select/src/components/Select.vue и поправить то что мне нужно, но это будет велокостыль так как нельзя просто так взять и поменять файл в папке node_modules (возможно схлопнется вселенная или того хуже, очередное обновление просто затрёт мой труд)! Я честно гуглил но не нашёл способа как просто взять и переопределить один файл из компонента, чтобы web-pack его срендерил вместо оригинала. Подскажите пожалуйста какой самый праведный путь к решению такой проблемы, в npm много хорошего, но иной раз хочется сделать ещё лучше а костылей у меня в проектах и так овермного, спасибо.
update1: В отношении конкретно vue-select, мой пример неуместен, так как я проглядел что такая возможность в нём всё-таки имеется, но как быть в отношении компонентов которые нельзя расширить методами самих компонентов?
  • Вопрос задан
  • 248 просмотров
Решения вопроса 1
Aetae
@Aetae Куратор тега Vue.js
Тлен
Если нужда адекватная - дописываете код, делаете PR автору и в следующей версии наслаждетесь.
Если нужда особая своя - делаете форк и либо публикуете в npm(никаких ограничений на это нет) в своём неймспейсе, либо просто кладёте в проект и линкуете свою локальную версию через link:./path или file:./path.

Монки-патчить какой-то один конкретный файл - не вариант(хотя технически возможны любые костыли - вебпак свободно расширяется плагинами), потому что в следующей версии либы автор может полностью перекроить внутреннюю структуру и у вас всё сломается.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
0xD34F
@0xD34F Куратор тега Vue.js
использую известный компонент vue-select он довольно удобный но у него нет того что мне нужно, а именно отображения опций в виде html-кода а не текста

Да ну? Вот открываю я документацию, и вижу, что у этого компонента есть слот option - можете нарисовать внутри такую разметку, какая вам нужна.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы