60 lines
1.5 KiB
JavaScript
60 lines
1.5 KiB
JavaScript
import App from './App'
|
||
|
||
// #ifndef VUE3
|
||
import Vue from 'vue'
|
||
import './uni.promisify.adaptor'
|
||
Vue.config.productionTip = false
|
||
App.mpType = 'app'
|
||
const app = new Vue({
|
||
...App
|
||
})
|
||
app.$mount()
|
||
// #endif
|
||
|
||
// #ifdef VUE3
|
||
import {
|
||
createSSRApp
|
||
} from 'vue'
|
||
import { createPinia } from 'pinia'
|
||
|
||
// // 在不支持 \p 的环境下,用普通正则替换
|
||
// if (typeof RegExp !== 'undefined') {
|
||
// const originalRegExp = window.RegExp
|
||
|
||
// // 检测是否支持 Unicode 属性
|
||
// let supportsUnicodeProperty = false
|
||
// try {
|
||
// new RegExp('\\p{L}', 'u')
|
||
// supportsUnicodeProperty = true
|
||
// } catch (e) {
|
||
// supportsUnicodeProperty = false
|
||
// }
|
||
|
||
// // 如果不支持,创建一个安全的 RegExp 包装器
|
||
// if (!supportsUnicodeProperty) {
|
||
// window.RegExp = function(pattern, flags) {
|
||
// if (typeof pattern === 'string') {
|
||
// // 移除正则中的 \p{L} 和 \p{N}
|
||
// pattern = pattern.replace(/\\p\{L\}/g, '[A-Za-z\\u00C0-\\u00FF]')
|
||
// pattern = pattern.replace(/\\p\{N\}/g, '[0-9]')
|
||
// pattern = pattern.replace(/\\p\{L\}|\\p\{N\}/g, '[A-Za-z0-9\\u00C0-\\u00FF]')
|
||
// }
|
||
// return new originalRegExp(pattern, flags)
|
||
// }
|
||
// window.RegExp.prototype = originalRegExp.prototype
|
||
// }
|
||
// }
|
||
|
||
export function createApp() {
|
||
// 1. 创建Vue实例
|
||
const app = createSSRApp(App)
|
||
// 2. 创建Pinia实例并挂载(必须在mount前)
|
||
const pinia = createPinia()
|
||
// 使用 Pinia
|
||
app.use(pinia)
|
||
return {
|
||
app,
|
||
pinia // 暴露pinia,避免后续调用时丢失上下文
|
||
}
|
||
}
|
||
// #endif
|