Module ‘“vue“‘ has no exported member ‘createSSRApp‘

一、**错误提示

Module ‘“vue”’ has no exported member ‘createSSRApp’**

二、出现的背景

2023年5月使用vue-cli创建uni-app+vue3+ts的默认项目,使用uview-plus,根据文档使用vue3的方式引入。

三、错误原因

vue-cli创建的项目,使用的并不是vue3,而是vue2,原因各种各样,比如我偷懒用vue ui创建,在图形化界面中选了vue3,但没想到用的还是vue2。

(PS.Vue2.7 是 Vue2.x 的最终次要版本,可以使用部分 Vue3 的特性)

总之,出现vue没有createSSRApp方法的错误,是因为该方法为vue3才有的,一般先查看vue版本是否为vue3。

package.json文件可以查看版本号

"dependencies": {
    "@vue/shared": "^3.0.0",
    "clipboard": "^2.0.11",
    "core-js": "^3.8.3",
    "dayjs": "^1.11.7",
    "flyio": "^0.6.2",
    "uview-plus": "^3.1.30",
    "vue": ">= 2.6.14 < 2.7",    // 注意这里的vue版本
    "vue-class-component": "^6.3.2",
    "vue-property-decorator": "^8.0.0",
    "vuex": "^3.2.0"
  },

四、解决方案

使用vue2+uview-ui@2.0.31

uview-plus适合vue2的方案 uview-ui

五、补充

使用ts时,需要另外定义uview-ui。因为该模组默认定义是any,需要我们将其定义为module,才能正常在ts中使用。

参考文档给的方案。其中refs.d.ts文件可以自行创建在根目录,然后输入内容为 declare module “uview-ui” 。

./refs.d.ts

declare module "uview-ui"

下面是官方方案。

uView 类型定义
基于 uView 2.0.34 版本文档编写

Vue组件
vue <= 2.6 引用 v26.d.ts,需要安装 @vue/runtime-dom
vue >= 3 引用 v3.d.ts
Refs引用 refs.d.ts
tsconfig.json 示例:

{
  "compilerOptions": {
    "types": [
      "@ttou/uview-typings/v26",
      "@ttou/uview-typings/refs"
    ]
  }
}

最终,我的main.ts是这样的。

import Vue from 'vue';
import App from './App.vue';
import './uni.promisify.adaptor';
import uView from "uview-ui";


Vue.config.productionTip = false;

Vue.use(uView);


const app = new (typeof App === 'function' ? App : Vue.extend(Object.assign({ mpType: 'app' }, App)))
app.$mount();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值