【问题标题】:"export 'default' (imported as 'Vue') was not found in 'vue'“在‘​​vue’中找不到导出‘默认’(导入为‘Vue’)
【发布时间】:2020-12-25 08:08:32
【问题描述】:

我是 VueJs 的初学者,这是我的第一个应用程序:

import { BootstrapVue } from 'bootstrap-vue'
import { createApp } from 'vue'
import App from './App.vue'
    
const myApp = createApp(App)
myApp.use(BootstrapVue)
myApp.mount('#app')

当我保存时,我的浏览器中没有任何内容,它在命令中显示此消息:

warning  in ./src/main.js

"export 'default' (imported as 'Vue') was not found in 'vue'

【问题讨论】:

  • 你在使用 vue 3 吗?
  • 是的 Vue Cli3 ,它第一次运行良好,但是当我导入 BootstrapVue 时,命令显示了上面的消息
  • 请分享您的 package.json 内容
  • "dependencies": { "bootstrap": "^4.5.2", "bootstrap-vue": "^2.16.0", "core-js": "^3.6.5", "vue": "^3.0.0-rc.10", "vue-loader-v16": "npm:vue-loader@^16.0.0-alpha.3", "vue-property-decorator": "^9.0.0" }, "devDependencies": { "@vue/cli-plugin-babel": "~4.5.0", "@vue/cli-plugin-eslint": "~4.5.0", "@vue/cli-service": "~4.5.0", "@vue/compiler-sfc": "^3.0.0-0", "babel-eslint": "^10.1.0", "bootstrap": "^4.3.1", "eslint": "^6.7.2", "eslint-plugin-vue": "^7.0.0-0", },
  • 如果您的项目没有太大进展,您正在安装 beta 版本的 vue 版本 3 并使用使用 vue 2 构建的库(我的意思是 bootstrap-vue)我可以建议正确的设置

标签: vue.js


【解决方案1】:

在我的情况下,webpack.config.js 中的 resolve.alias 指令错误,将 'vue' 设置为 'vue/dist/vue.js' 而不是 'vue/dist/vue.esm.js'

【讨论】:

    【解决方案2】:

    import * as Vue from 'vue'

    这对我有用

    【讨论】:

    • 哈哈。为什么这在任何地方都没有记录? (谢谢)
    • 哈哈,谁知道呢,这些小事总是让人迷惑
    • 你能扩展你的答案吗?更多代码,例如我认为你在 main.js 中的工作代码可以帮助更多的人。
    • 好,我会注意的!
    【解决方案3】:

    我收到了警告

    "export 'default' (imported as 'Vue') was not found in 'vue'
    

    我使用的是 Vue 3,但我正在研究的代码是 Vue 2。

    我在 main.js 中的代码 Vue 2

    import Vue from 'vue'
    import App from './App.vue'
        
    Vue.config.productionTip = false
        
    new Vue ({
        render: h => h(App),
    }).$mount('#app')
    

    所以我需要使用以下代码 Vue 2 创建一个 Vue 实例:

    export const eventBus = new Vue ()
    

    然后我收到了错误代码,我通过更正如下所示的代码解决了这个问题:

    import { createApp } from 'vue'
    import App from './App.vue'
    
    export const eventBus = createApp(App)
    
    createApp(App).mount('#app')
    

    【讨论】:

      【解决方案4】:

      这将适用于 Vue 3

      const axios = require('axios')
      
      export default {
          data() {
              return {}
          },
          mounted() {
              axios.get("").then((res)=>{})
         }
      }
      

      【讨论】:

      • 正是我想要的,谢谢
      • 这个解决方案有什么意义。我不明白。
      • @Čamo 重点是在需要的地方导入 axios,而不是在 main.ts/js 中。
      • @DimitriMostrey 这实际上与所提出的问题无关。
      【解决方案5】:

      Bootstrap-Vue 尚不支持 Vue 3。 所以如果你想使用 Bootstrap-Vue,你现在必须坚持使用 Vue 2。

      一般来说,大多数库还不支持 Vue 3,所以我建议在使用它之前等待一段时间,直到生态系统跟上。

      说明

      发生这种情况的原因是因为在 Vue 2 中,Vue 提供了一个默认导出 export default vue,它允许 BootstrapVue 使用 import Vue from 'vue'

      但是,在 Vue 3 中,这发生了变化,Vue 不再提供默认导出,而是使用命名导出。所以当BootstrapVue使用下面这行import Vue from 'vue'时,就会出现错误。

      【讨论】:

      • 我在使用 vue2 时遇到了这个问题
      • 还是一样。 :( 2021-07-19
      • 并没有真正解释如何修复它
      • @ak22 So if you want to use Bootstrap-Vue you will have to stick with Vue 2 for now.,不确定这不是解决方案吗?
      • 坦率地说,我所做的只是创建了一个新项目(不是 bootstrap,而是 quasar),然后我从以前使用“从 'vue' 导入 Vue”的项目中复制了一个 .js 文件。我的 package.json 在 2.6.12 有 vue,但仍然出现此错误。所以,不确定我需要做什么。感谢您的回复。
      【解决方案6】:

      如果您只是追求样式,则可以简单地放置

      import 'bootstrap/dist/css/bootstrap.css'
      import 'bootstrap-vue/dist/bootstrap-vue.css'
      

      添加到您的 app.js 文件中,它将正常工作。

      【讨论】:

        猜你喜欢
        • 2021-12-16
        • 2021-04-26
        • 2021-01-10
        • 2021-01-10
        • 2021-07-08
        • 2021-10-25
        • 2021-03-04
        • 2018-07-21
        相关资源
        最近更新 更多