После обновления до Vue 3 и обновления экземпляра Vue до createApp сборка веб-пакета завершается с ошибкой, модуль не найден: ошибка: не удается разрешить «vue»

После выполнения всех необходимых обновлений до 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, но я этим не пользуюсь.

вы можете проверить мой ответ здесь

Boussadjra Brahim 11.12.2020 16:32

@BoussadjraBrahim спасибо, но не уверен, как это решает мою проблему, поскольку похоже, что это связано с компиляцией vue-template-compile, которую я уже заменил на @vue/compiler-sfc. Спасибо хоть. Может быть полезно для других, поскольку обновление vue3 меняет несколько вещей.

redfox05 11.12.2020 17:05

Посмотрите это руководство по настройке Vue v3 без vue-cli: frontendguruji.com/blog/…

Mandeep Pasbola 02.01.2022 09:38
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
6
3
3 488
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

После долгих исследований выяснилось, что вы, возможно, захотите проверить раздел псевдонима конфигурации веб-пакета, поскольку ссылки на сборку 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.

trusktr 18.10.2021 22:06

Другие вопросы по теме