Ошибка: Uncaught (в обещании) TypeError: n.swapComponent не является функцией

Я разрабатываю приложение, используя Laravel с Jetsream и стеком Vuejs и Inertia, и после запуска npm audit fix я получаю пустую страницу в своем приложении.

Я выполнил команду npm npm audit fix после получения сообщения о трех уязвимостях высокой степени серьезности. Это был вывод:

npm WARN deprecated [email protected]: Critical security vulnerability fixed in v0.21.1. For more information, see https://github.com/axios/axios/pull/3410
npm WARN @inertiajs/[email protected] requires a peer of @inertiajs/inertia@^0.2.0 || ^0.3.0 but none is installed. You must install peer dependencies yourself.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

+ [email protected]
+ @inertiajs/[email protected]
added 4 packages from 5 contributors and updated 2 packages in 4.307s

55 packages are looking for funding
  run `npm fund` for details

fixed 2 of 3 vulnerabilities in 1150 scanned packages
  1 vulnerability required manual review and could not be updated

После запуска этой команды каждая страница на сайте пуста, и в консоли отображается следующая ошибка:

app.js:121 Uncaught (in promise) TypeError: n.swapComponent is not a function
    at app.js:121
(anonymous) @ app.js:121
Promise.then (async)
setPage @ app.js:121
handleInitialPageVisit @ app.js:121
init @ app.js:121
created @ app.js:108
invokeWithErrorHandling @ app.js:104023
callHook @ app.js:106380
Vue._init @ app.js:107162
VueComponent @ app.js:107307
createComponentInstanceForVnode @ app.js:105450
init @ app.js:105281
createComponent @ app.js:108133
createElm @ app.js:108080
patch @ app.js:108669
Vue._update @ app.js:106106
updateComponent @ app.js:106227
get @ app.js:106638
Watcher @ app.js:106627
mountComponent @ app.js:106234
./node_modules/vue/dist/vue.common.dev.js.Vue.$mount @ app.js:111204
./node_modules/vue/dist/vue.common.dev.js.Vue.$mount @ app.js:114104
./resources/js/app.js @ app.js:120619
__webpack_require__ @ app.js:20
0 @ app.js:120679
__webpack_require__ @ app.js:20
(anonymous) @ app.js:84
(anonymous) @ app.js:87

Я новичок в laravel/этом стеке, и любая помощь в отслеживании источника этой проблемы будет оценена по достоинству.


person Andrew    schedule 06.01.2021    source источник


Ответы (3)


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

из:


"@inertiajs/inertia": "^0.1.9",

to

"@inertiajs/inertia": "^0.8.2",

Так как это было предложено аудитом безопасности GitHub, так что пока я просто возвращаюсь к ^0.1.9

person Tanner    schedule 08.01.2021

Попробуйте обновить пакет @inertiajs/inertia-vue до последней версии ^0.5.4.

В package.json установите @inertiajs/inertia-vue: ^0.5.4 и запустите npm install.

Работа от меня!

person Cleber Martins    schedule 06.01.2021
comment
К сожалению, у меня это не сработало :( Мне пришлось вернуться назад. Я посмотрю новое обновление Laravel Jetstream, включенное в v2, и посмотрю, смогу ли я поработать над исправлением моей собственной проблемы. - person Tanner; 08.01.2021
comment
Я попробовал это, и он удалил ошибку, указанную выше, но мой проект все еще не работает, и я получаю несколько других ошибок консоли, связанных с TypeError: Cannot read property 'message' of undefined со всеми без исключения $page переменными/реквизитами и т. д. Я точно не знаю, что происходит, но кажется, что vue не работает должным образом, я безуспешно пытался обновить все пакеты до самой последней версии. - person Andrew; 09.01.2021
comment
Эта комбинация сработала для меня: инерция: ^ 0,8,4 и инерция-вью: ^ 0,5,5 - person Jannie Theunissen; 26.01.2021

Я также столкнулся с той же проблемой после обновления npm, и, чтобы исправить это, я понизил пакет инерции. В package.json @inertiajs/inertia: ^0.1.7, затем установите npm.

person user2231992    schedule 08.01.2021