Module ‘“vue“‘ has no exported member ‘createSSRApp‘
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();
更多推荐
已为社区贡献1条内容
所有评论(0)