origami1024
@origami1024
went out for a night walk

Как сделать динамический импорт библиотеки внутри метода в vue?

На фронте библиотеку по генерации PDF хочется грузить только уже по нажатию кнопки "сгенерировать PDF" - загрузить либу и запустить генерацию.

Гуглится динамический импорт компонентов, но не библиотек.

Возможно ли что-то типа такого внутри метода vue:
methods: {
        generatePDF() {
            const html2pdfd = () => import ("html2pdf" /*webpackChunkName:"html2Pdf"*/)
            html2pdfd()
        },
        ...
}
  • Вопрос задан
  • 230 просмотров
Решения вопроса 2
Aetae
@Aetae Куратор тега Vue.js
Тлен
Возможно. Ты сам написал как. Дальше обычная асинхронность, к Vue или сборщикам отношения не имеет.
spoiler
methods: {
        async generatePDF() {
            const html2pdfd = await import("html2pdf" /*webpackChunkName:"html2Pdf"*/);
            html2pdfd()
        },
        ...
}

или
methods: {
        generatePDF() {
            import("html2pdf" /*webpackChunkName:"html2Pdf"*/).than(html2pdfd => {
                html2pdfd()
            })
        },
        ...
}


Ответ написан
Kozack
@Kozack Куратор тега Vue.js
Thinking about a11y
Должно работать так же как с компонентами:
async generatePDF() {
            const html2pdfd = await import('html2pdf')
            console.log({ html2pdfd }) // <-- то, что экспортируется в "html2pdf"
        }

Если не работает -- копайте в сторону настроек сборщика.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Человек зашёл на страницу, значит ему это нужно. А компонент может бить по страницам. В чем проблема?
Ответ написан
Ваш ответ на вопрос

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

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