Monorepo-uniapp 构建分享

Monorepo uniapp

构建灵感:刚好要做一个项目,于是想到升级一下之前自己写的一个vue3+ts+pinia+uno的模版框架,其实那个框架也不错;只是感觉还差点东西,我已经用那个小框架写了两三个项目;轻巧实用。为什么选择去基于vben3构建uniapp 的monorepo架子,主要还是热爱,想去探索,去感受一下前沿的一些技术;生命在于折腾。

uni-app Vue3 + TypeScript + Vite + Pinia + Unocss 模板项目

uniapp-ts-unocss-pinia-vue3-demo 项目代码https://gitee.com/ggbhack/uniapp-ts-unocss-pinia-vue3-demo.git用它做过的项目:

【把货】小程序

【赛客定位】小程序

【游记】h5

monorepo-uniapp项目代码仓库https://gitee.com/ggbhack/monorepo-uniapp.git以上两个项目,喜欢研究的朋友也可以拿去自己改造改造;

vben3 参考基础https://vbenjs.github.io/vben3-doc/

项目架构搭建中


  • [x] vite-config

  • [x] ts-config

  • [x] unocss 样式

  • [x] pinia 状态管理

  • [x] env 环境变量

  • [x] uview-plus ui库

  • [x] mescroll-uni 刷新组件

  • [x] lint-staged 提交前校验

  • [x] pinia 缓存

还有一些其他的就不列出来;


以下遇到的问题汇总

为什么 uni-app (vue3) 和 @vueuse/core v10 一起用会报错?参考https://juejin.cn/post/7308899425149042739

function createMockComponent(name) {

return {

setup() {

throw new Error(`[vue-demi] ${name} is not support vue2`)

},

}

}



export var TransitionGroup = /*__PURE__*/ createMockComponent('TransitionGroup')

Error: module 'common/side-channel.js' is not defined, require args is 'side-channel'https://ask.dcloud.net.cn/question/177458

qs版本问题,换成6.5.3或其他版本试试

[uniapp 封装axios adapter 运行到小程序报错 Module not found: Error: Package path ./lib/core/settle is not exported from package D:\xxx\xxx\n..https://www.jianshu.com/p/d1d6e0751d97

更换axios的版本为 "axios": "^0.26.1"

多语言打包小程序无效

换一种方式引入

import zh_CN from './lang/zh_CN'

import en from './lang/en'

// 这里改用另外一种方式

// const defaultLocal = await import(`./lang/${locale}.ts`);

// const message = defaultLocal.default?.message ?? {};

const messages: Record<string, any> = {

en,

zh_CN

}

// // const defaultLocal = zh_CN;

// const message = defaultLocal ?? {};

const message = messages[locale].message ?? {}

改造 getAppConfig

// 打包微信小程序报错 __PRODUCTION__VBEN_ADMIN__ 报错无法读取

function getAppConfig(env: Record<string, any>) {

// const ENV_NAME = getAppConfigFileName(env)



// const ENV = (

// env.DEV

// ? // Get the global configuration (the configuration will be extracted independently when packaging)

// env

// : window[ENV_NAME]

// ) as GlobEnvConfig

const ENV = env as GlobEnvConfig



// console.log(env,env.DEV)

const { VITE_GLOB_APP_SHORT_NAME } = ENV



if (!/^[a-zA-Z\_]*$/.test(VITE_GLOB_APP_SHORT_NAME)) {

console.warn(

`VITE_GLOB_APP_SHORT_NAME Variables can only be characters/underscores, please modify in the environment variables and re-running.`,

)

}



return ENV

}

unocss 打包小程序 样式报错多一个 \

固定unocss的版本号 - 后续看能不能解决控制台的警告

{

"unocss": "^0.51.8",

"unocss-preset-weapp": "^0.2.1"

}

[uniapp 的缓存处理 参考]https://blog.csdn.net/weixin_43191327/article/details/134071863

在构建的过程中我移除了一些不必要的依赖包,当然还留了一些;具体可以看对应的代码;

这是我花了几天时间运行完之后的样子;可能还存在一些其他的问题,后续在慢慢的优化。

还是那句话:

一行动,就创新

一具体,就深刻

一困惑,就上网

相关推荐
瑶琴AI前端4 小时前
uniapp组件实现省市区三级联动选择
java·前端·uni-app
mosen8684 小时前
Uniapp去除顶部导航栏-小程序、H5、APP适用
vue.js·微信小程序·小程序·uni-app·uniapp
尚梦12 小时前
uni-app 封装刘海状态栏(适用小程序, h5, 头条小程序)
前端·小程序·uni-app
尚学教辅学习资料18 小时前
基于SSM+uniapp的营养食谱系统+LW参考示例
java·uni-app·ssm·菜谱
Bessie23418 小时前
微信小程序eval无法使用的替代方案
微信小程序·小程序·uni-app
qq22951165021 天前
小程序Android系统 校园二手物品交换平台APP
微信小程序·uni-app
qq22951165022 天前
微信小程序uniapp基于Android的流浪动物管理系统 70c3u
微信小程序·uni-app
qq22951165022 天前
微信小程序 uniapp+vue老年人身体监测系统 acyux
vue.js·微信小程序·uni-app
摇头的金丝猴2 天前
uniapp vue3 使用echarts-gl 绘画3d图表
前端·uni-app·echarts
小远yyds2 天前
跨平台使用高德地图服务
前端·javascript·vue.js·小程序·uni-app