vue.js 如何修复“请求的模块不提供名为”default“的导出”?

vi4fp9gy  于 2023-01-09  发布在  Vue.js
关注(0)|答案(4)|浏览(400)

我正在使用JS和Vue.js开发应用程序,并在线获得错误:

import Vue from 'vue'

我得到了这个:
未捕获的语法错误:请求的模块"/node_modules/. vite/vue. js?v = 6dba2ea6 "未提供名为" default "的导出
我在谷歌上搜索了一下,这可能是由旧的Vue版本引起的,在我的 * package. json * vue版本是3.2.6,但是

npm view vue version

返回2.6.14,我尝试使用Vue CLI对其进行升级

vue upgrade

但npm命令仍返回2.6.14
我希望你能帮助我,我做错了什么或者它甚至不是版本的问题?谢谢!

hwazgwia

hwazgwia1#

它不起作用的原因是Vue提供了一个named导出,而您试图将其导入为default导出。
要创建一个named导入(您必须对namedexports执行此操作),您需要将您想要导入的导出的名称括在大括号中,因此{}括在Vue周围,如下所示:

import { Vue } from 'vue';
      // ^^^ name of export

会成功的
你要做的是导入vue,但是它没有默认的导出函数,或者vue模块中没有设置默认的导出函数,所以你必须通过添加花括号来选择名为vue的函数。

如果它有default导出函数,那么您的代码就可以工作,在这种情况下,您可以编写任何内容来代替vue,如下所示:

import anyname from 'vue'

anyname可以随意命名。

i86rm4rw

i86rm4rw2#

另一个解决方案是使用createApp()函数,如下所示:

import { createApp } from 'vue';
createApp(App).mount('#app')

我没有使用Vue JS的经验,但是看起来他们不再输出单个对象了。游侠可以输出一系列的东西。

flmtquvp

flmtquvp3#

通常从Vue 2开始,在src/main.js文件中,我们通过调用一个新的Vue作为创建应用程序示例的构造函数来引导应用程序。

import Vue from "vue";
import App from "./App.vue";
import router from './router'

const app = new Vue({
  router,
  render: h => h(App)
});

对于Vue 3,初始化代码语法已经改变,更加简洁和紧凑

import { createApp } from "vue";

createApp(App).use(store).mount('#app')
b4lqfgs4

b4lqfgs44#

这对我很有效:-

import * as Vue from 'vue';

对于不同的 Package 也是类似的:

import * as Vuex from 'vuex';
import * as VueRouter from 'vue-router';

截至撰写本报告时:

"devDependencies": {
       ...
        "vue": "^3.2.45",

相关问题