VueJS 3 регистрация импорта по всему миру

#javascript #vue.js #vuejs3 #inertiajs

Вопрос:

У меня, наверное, простой вопрос, но я на самом деле не знаю, как это сделать.

Я хочу использовать Sweetalert2 и использовать его глобально в каждом компоненте VueJS, который у меня есть. Так что в моем app.js У меня есть это:

 import { createApp, h } from 'vue'
import { createInertiaApp } from '@inertiajs/inertia-vue3'
import { Head, Link } from '@inertiajs/inertia-vue3'
import { InertiaProgress } from '@inertiajs/progress'
import { Swal } from 'sweetalert2'


createInertiaApp({
  resolve: name => require(`./Pages/${name}`),
  setup({ el, App, props, plugin }) {
    createApp({ render: () => h(App, props) })
      .use(plugin)
      .use(Swal)
      .component('Link', Link)
      .component('Head', Head)
      .mount(el)
  },
})
 

По какой-то причине это все еще приводит к этой ошибке:
(Изображение)

Ответ №1:

Вы пробовали использовать импорт по умолчанию

 import Swal from 'sweetalert2'
 

Ответ №2:

 .component('Swal',require('sweetalert2').default);
 

для того, чтобы сделать любой компонент доступным для всех компонентов vue, необходимо указать по умолчанию
, пробовали ли вы этот способ?

Комментарии:

1. По-прежнему остается, что это не определено :/

2. Работает ли это при импорте в локальном компоненте?

Ответ №3:

Попробуйте установить этот пакет npm : https://www.npmjs.com/package/vue-sweetalert2 Он сделан для vue 2 и 3