После выполнения всех необходимых обновлений до Vue 3 я не могу избавиться от очень бесполезного сообщения об ошибке во время сборки веб-пакета:
Module not found: Error: Can't resolve 'vue'
Я обновился до последней версии Vue (3.0.4) в package.json.
Я обновил все остальные пакеты, включая vue-loader (16.1.1)
, и перешел с vue-template-compile
на @vue/compiler-sfc (3.0.4)
.
Я изменил код инициализации main.js на import { createApp } from 'vue';
и createApp( App ).mount( '#app' );
Я удалил node_modules и повторно запустил установку npm, поэтому «vue» определенно там.
Я даже упростил все компоненты Vue, чтобы в них буквально не было ничего, кроме html.
Почему он все еще говорит, что не может найти «vue». Большинство поисковых запросов в Google приводят к предложениям относительно laravel, но я этим не пользуюсь.
@BoussadjraBrahim спасибо, но не уверен, как это решает мою проблему, поскольку похоже, что это связано с компиляцией vue-template-compile, которую я уже заменил на @vue/compiler-sfc. Спасибо хоть. Может быть полезно для других, поскольку обновление vue3 меняет несколько вещей.
Посмотрите это руководство по настройке Vue v3 без vue-cli: frontendguruji.com/blog/…
После долгих исследований выяснилось, что вы, возможно, захотите проверить раздел псевдонима конфигурации веб-пакета, поскольку ссылки на сборку Vue в пакете vue изменились между Vue2 и Vue3.
Если у вас есть следующий набор псевдонимов, указывающий на среду выполнения Vue, вам необходимо обновить его.
Старый:
resolve: {
alias: {
'vue$': 'vue/dist/vue.runtime.esm.js',
}
}
Изменить на:
resolve: {
alias: {
'vue$': 'vue/dist/vue.runtime.esm-bundler.js',
}
}
Дополнительную информацию можно найти в документации Vue 3
Спасибо. Псевдоним Webpack нуждался в обновлении при обновлении с Vue 2 до Vue 3.
вы можете проверить мой ответ здесь