升级到 Vue 3 并将 Vue 实例化更新为 createApp 后,webpack 构建失败,并显示 Module not found: Error: Can't parse 'vue'

red*_*x05 6 webpack vue.js vuejs3

在完成所有必要的升级到 Vue 3 后,我无法摆脱 webpack 构建过程中非常无用的错误消息:

Module not found: Error: Can't resolve 'vue'

  • 我在 package.json 中更新到最新的 Vue 版本(3.0.4)

  • 我更新了所有其他软件包,包括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 install,所以“vue”肯定在那里。

  • 我什至简化了所有 Vue 组件,使其中除了 html 之外什么都没有。

为什么它仍然说找不到“vue”。大多数谷歌搜索都会产生有关 Laravel 的建议,但我不使用它。

red*_*x05 20

经过大量研究,发现您可能需要检查 webpack 配置别名部分,因为 vue 包中的 Vue 构建引用在 Vue2 和 Vue3 之间发生了变化。

如果您有以下指向 Vue 运行时的别名集,则需要更新它。

老的:

resolve: {
    alias: {
        'vue$': 'vue/dist/vue.runtime.esm.js',
    }
}
Run Code Online (Sandbox Code Playgroud)

改成:

resolve: {
    alias: {
        'vue$': 'vue/dist/vue.runtime.esm-bundler.js',
    }
}
Run Code Online (Sandbox Code Playgroud)

更多信息可以在Vue 3 文档中找到