Monorepo-uniapp 构建分享

Monorepo uniapp 

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

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

uniapp-ts-unocss-pinia-vue3-demo 项目代码icon-default.png?t=N7T8https://gitee.com/ggbhack/uniapp-ts-unocss-pinia-vue3-demo.git用它做过的项目:

【把货】小程序

【赛客定位】小程序

【游记】h5

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

vben3 参考基础icon-default.png?t=N7T8https://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 一起用会报错?参考icon-default.png?t=N7T8https://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'icon-default.png?t=N7T8https://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..icon-default.png?t=N7T8https://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 的缓存处理 参考]icon-default.png?t=N7T8https://blog.csdn.net/weixin_43191327/article/details/134071863

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

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

还是那句话:

一行动,就创新

一具体,就深刻

一困惑,就上网

  • 22
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值