Compare commits

...

4 Commits

Author SHA1 Message Date
h_mo
eeb6cdcd6e ci: 添加版本控制配置文件- 新增 .versionrc.cjs 文件,用于配置版本控制规则- 定义了常见的提交类型,包括新功能、Bug 修复、文档、风格、重构和性能优化
- 每种类型都包含了对应的中文描述,便于团队成员理解和使用
2025-04-02 23:45:35 +08:00
h_mo
0996b95488 chore(release): 2.1.0 2025-04-02 23:44:52 +08:00
h_mo
642ee9e637 feat: add unocss configuration for styling
- Introduced a new unocss.config.ts file to define styling configurations.
- Configured presets for Weapp and Icons, including custom transform rules.
- Set up theme colors and font sizes for consistent styling across the application.
- Added transformers for attributify and class handling.
2025-04-02 23:34:35 +08:00
h_mo
a00d3a3c2d build(deps): 更新依赖版本 2025-04-02 20:43:42 +08:00
13 changed files with 151 additions and 71 deletions

9
.npmrc
View File

@ -1,6 +1,9 @@
# 提示:如果你想自动安装对等依赖,在项目根目录下的.npmrc文件中添加"auto-install-peers=true"。
# 提示:如果你不希望pnpm在对等依赖问题上失败在项目根目录下的.npmrc文件中添加"strict-peer-dependencies=false"。
# auto-install-peers=true
auto-install-peers=true
strict-peer-dependencies=false
# registry=https://registry.npmmirror.com
registry=https://registry.npmjs.org
registry=https://registry.npmmirror.com
# registry=https://registry.npmjs.org
public-hoist-pattern[]=*vue*
shamefully-hoist=true

View File

@ -1,10 +0,0 @@
{
"types": [
{"type": "feat", "section": "✨ Features | 新功能", "hidden": false},
{"type": "fix", "section": "🐛 Bug Fixes | Bug 修复", "hidden": false},
{"type": "docs", "section":"📝 Documentation | 文档", "hidden": false},
{"type": "style", "section":"💄 Styles | 风格", "hidden": false},
{"type": "refactor", "section":"💄 Refactor | 重构", "hidden": false},
{"type": "perf", "section":"⚡ Performance Improvements | 性能优化", "hidden": false},
]
}

10
.versionrc.cjs Normal file
View File

@ -0,0 +1,10 @@
module.exports = {
types: [
{ type: 'feat', section: '✨ Features | 新功能', hidden: false },
{ type: 'fix', section: '🐛 Bug Fixes | Bug 修复', hidden: false },
{ type: 'docs', section: '📝 Documentation | 文档', hidden: false },
{ type: 'style', section: '💄 Styles | 风格', hidden: false },
{ type: 'refactor', section: '💄 Refactor | 重构', hidden: false },
{ type: 'perf', section: '⚡ Performance Improvements | 性能优化', hidden: false },
],
};

View File

@ -2,6 +2,24 @@
All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
## [2.1.0](https://gitee.com/h_mo/uniapp-vue3-vite-ts-template/compare/v2.0.1...v2.1.0) (2025-04-02)
### ✨ Features | 新功能
* add unocss configuration for styling ([642ee9e](https://gitee.com/h_mo/uniapp-vue3-vite-ts-template/commit/642ee9e6374651d502fc47bb6596711a93af1e07))
### 🐛 Bug Fixes | Bug 修复
* **build:** 修复pnpm构建出错的问题 ([a0b559f](https://gitee.com/h_mo/uniapp-vue3-vite-ts-template/commit/a0b559f7d2f87e738c7b61560f0c44312e985a3f))
### 💄 Styles | 风格
* 格式化代码 ([36d036e](https://gitee.com/h_mo/uniapp-vue3-vite-ts-template/commit/36d036e08626ced71485b8566acba8a824132657))
* 格式化代码 ([bfcabd0](https://gitee.com/h_mo/uniapp-vue3-vite-ts-template/commit/bfcabd0262fefdb2d78c294cf149ec32874846b3))
## 2.0.1 (2024-08-30)

View File

@ -17,7 +17,7 @@
<img src="https://img.shields.io/badge/-pnpm-F69220?logo=pnpm&logoColor=white" />
</a>
<a href="https://unocss.dev/" target="_blank">
<img src="https://img.shields.io/badge/-tailwindcss-0f172a?logo=tailwindcss" />
<img src="https://img.shields.io/badge/-unocss-0f172a?logo=unocss" />
</a>
<a href="https://iconify.design/" target="_blank">
<img src="https://img.shields.io/badge/-Iconify-1769aa?logo=Iconify" />
@ -55,7 +55,7 @@
## 特性
- **最新技术栈**:使用 Vue3/Vite5/pinia ,TypeScript 等前端前沿技术开发;
- **[Tailwindcss](https://tailwindcss.com/)**: 原子化 CSS, [iconify](https://iconify.design/)图标
- **[Unocss](https://unocss.dev/)**: 原子化 CSS, [iconify](https://iconify.design/)图标
- **Eslint**: 规范代码格式,统一编码;
- **路由拦截**: [uni-mini-router](https://gitee.com/fant-mini/uni-mini-router),类似Vue Router的API和功能,在uni-app中进行路由跳转、传参、拦截等常用操作;
- **请求拦截**: 使用[alova 请求](https://github.com/alovajs/alova),支持请求和响应拦截等;
@ -152,7 +152,7 @@
- 安装依赖
> 若 pnpm 安装或运行失败,请使用 npm 或 yarn 安装依赖
> 若 pnpm 安装或运行失败,请使用 npm 或 **yarn** 安装依赖
```bash
pnpm install

View File

@ -3,13 +3,13 @@ import process from 'node:process';
const currentPlatform = process.env.UNI_PLATFORM;
const isH5 = currentPlatform === 'h5';
const isApp = currentPlatform === 'app';
const WeappTailwindcssDisabled = isH5 || isApp;
const isMp = !isH5 && !isApp;
const isWeixinMp = currentPlatform === 'mp-weixin';
export {
currentPlatform,
isApp,
isH5,
isMp,
WeappTailwindcssDisabled,
isWeixinMp,
};

View File

@ -1,11 +1,10 @@
import type { PluginOption } from 'vite';
import uni from '@dcloudio/vite-plugin-uni';
import tailwindcss from '@tailwindcss/vite';
import { visualizer } from 'rollup-plugin-visualizer';
import Unocss from 'unocss/vite';
import autoImport from 'unplugin-auto-import/vite';
import viteRestart from 'vite-plugin-restart';
import { UnifiedViteWeappTailwindcssPlugin as uvtw } from 'weapp-tailwindcss/vite';
import { isH5, WeappTailwindcssDisabled } from './platform';
import { isH5 } from './platform';
interface VitePluginConfig {
isProd: boolean
@ -15,13 +14,8 @@ export function createVitePlugins({ isProd }: VitePluginConfig): PluginOption[]
return [
// @ts-expect-error TODO uni() 会报错uni is not a function,暂时使用此方式解决
uni?.default(),
tailwindcss(),
uvtw({
rem2rpx: true,
disabled: WeappTailwindcssDisabled,
// 使用新的 ast-grep 来处理 js 资源,速度是 babel 的2倍左右
// 需要先安装 `@ast-grep/napi`
// jsAstTool: 'ast-grep'
Unocss({
hmrTopLevelAwait: false,
}),
autoImport({
include: [

View File

@ -1,7 +1,7 @@
{
"name": "uniapp_vue3_vite_ts",
"type": "module",
"version": "2.0.1",
"version": "2.1.0",
"scripts": {
"dev:app": "uni -p app",
"dev:custom": "uni -p",
@ -33,7 +33,6 @@
"build:quickapp-webview-union": "uni build -p quickapp-webview-union",
"lint:fix": "eslint . --fix",
"git:hooks": "npx simple-git-hooks",
"postinstall": "weapp-tw patch",
"version:first": "commit-and-tag-version --first-release",
"version:alpha": "commit-and-tag-version --prerelease alpha",
"version:beta": "commit-and-tag-version --prerelease beta",
@ -44,21 +43,21 @@
},
"dependencies": {
"@alova/adapter-uniapp": "^2.0.11",
"@alova/mock": "^2.0.12",
"@alova/mock": "^2.0.13",
"@alova/shared": "^1.1.2",
"@dcloudio/uni-app": "3.0.0-alpha-4050320250224001",
"@dcloudio/uni-app-plus": "3.0.0-alpha-4050320250224001",
"@dcloudio/uni-components": "3.0.0-alpha-4050320250224001",
"@dcloudio/uni-h5": "3.0.0-alpha-4050320250224001",
"@dcloudio/uni-i18n": "3.0.0-alpha-4050320250224001",
"@dcloudio/uni-mp-alipay": "3.0.0-alpha-4050320250224001",
"@dcloudio/uni-mp-baidu": "3.0.0-alpha-4050320250224001",
"@dcloudio/uni-mp-kuaishou": "3.0.0-alpha-4050320250224001",
"@dcloudio/uni-mp-lark": "3.0.0-alpha-4050320250224001",
"@dcloudio/uni-mp-qq": "3.0.0-alpha-4050320250224001",
"@dcloudio/uni-mp-toutiao": "3.0.0-alpha-4050320250224001",
"@dcloudio/uni-mp-weixin": "3.0.0-alpha-4050320250224001",
"@dcloudio/uni-quickapp-webview": "3.0.0-alpha-4050320250224001",
"@dcloudio/uni-app": "3.0.0-alpha-4060120250328001",
"@dcloudio/uni-app-plus": "3.0.0-alpha-4060120250328001",
"@dcloudio/uni-components": "3.0.0-alpha-4060120250328001",
"@dcloudio/uni-h5": "3.0.0-alpha-4060120250328001",
"@dcloudio/uni-i18n": "3.0.0-alpha-4060120250328001",
"@dcloudio/uni-mp-alipay": "3.0.0-alpha-4060120250328001",
"@dcloudio/uni-mp-baidu": "3.0.0-alpha-4060120250328001",
"@dcloudio/uni-mp-kuaishou": "3.0.0-alpha-4060120250328001",
"@dcloudio/uni-mp-lark": "3.0.0-alpha-4060120250328001",
"@dcloudio/uni-mp-qq": "3.0.0-alpha-4060120250328001",
"@dcloudio/uni-mp-toutiao": "3.0.0-alpha-4060120250328001",
"@dcloudio/uni-mp-weixin": "3.0.0-alpha-4060120250328001",
"@dcloudio/uni-quickapp-webview": "3.0.0-alpha-4060120250328001",
"@multiavatar/multiavatar": "^1.0.7",
"alova": "^3.2.10",
"crypto-js": "^4.2.0",
@ -67,41 +66,39 @@
"vue": "^3.5.13"
},
"devDependencies": {
"@antfu/eslint-config": "^4.8.1",
"@antfu/eslint-config": "^4.11.0",
"@dcloudio/types": "^3.4.14",
"@dcloudio/uni-automator": "3.0.0-alpha-4050320250224001",
"@dcloudio/uni-cli-shared": "3.0.0-alpha-4050320250224001",
"@dcloudio/uni-stacktracey": "3.0.0-alpha-4050320250224001",
"@dcloudio/uni-uts-v1": "3.0.0-alpha-4050320250224001",
"@dcloudio/vite-plugin-uni": "3.0.0-alpha-4050320250224001",
"@egoist/tailwindcss-icons": "^1.9.0",
"@iconify/json": "^2.2.315",
"@rollup/plugin-node-resolve": "^16.0.0",
"@tailwindcss/vite": "^4.0.12",
"@dcloudio/uni-automator": "3.0.0-alpha-4060120250328001",
"@dcloudio/uni-cli-shared": "3.0.0-alpha-4060120250328001",
"@dcloudio/uni-stacktracey": "3.0.0-alpha-4060120250328001",
"@dcloudio/uni-uts-v1": "3.0.0-alpha-4060120250328001",
"@dcloudio/vite-plugin-uni": "3.0.0-alpha-4060120250328001",
"@iconify/json": "^2.2.323",
"@rollup/plugin-node-resolve": "^16.0.1",
"@types/crypto-js": "^4.2.2",
"@types/lodash-es": "^4.17.12",
"@types/node": "^22.13.10",
"@vitejs/plugin-vue": "^5.2.1",
"@types/node": "^22.13.17",
"@vitejs/plugin-vue": "^5.2.3",
"@vue/runtime-core": "^3.5.13",
"autoprefixer": "^10.4.21",
"commit-and-tag-version": "^12.5.0",
"eslint": "^9.22.0",
"eslint": "^9.23.0",
"eslint-plugin-format": "^1.0.1",
"globals": "^16.0.0",
"lint-staged": "^15.4.3",
"lint-staged": "^15.5.0",
"picocolors": "^1.1.1",
"rollup-plugin-visualizer": "^5.14.0",
"sass": "^1.85.1",
"simple-git-hooks": "^2.11.1",
"tailwindcss": "^4.0.12",
"sass": "^1.86.1",
"simple-git-hooks": "^2.12.1",
"tsx": "^4.19.3",
"typescript": "^5.8.2",
"uni-mini-router": "^0.1.6",
"uni-read-pages-vite": "^0.0.6",
"unplugin-auto-import": "^19.1.1",
"vite": "^6.2.1",
"vite-plugin-restart": "^0.4.2",
"weapp-tailwindcss": "^4.0.11"
"unocss": "66.1.0-beta.8",
"unocss-preset-weapp": "^66.0.0",
"unplugin-auto-import": "^19.1.2",
"vite": "^5.4.16",
"vite-plugin-restart": "^0.4.2"
},
"simple-git-hooks": {
"pre-commit": "npx lint-staged",

View File

@ -3,6 +3,7 @@ import App from './App.vue';
import { setupRouter } from './router';
import { setupStore } from './stores';
import './styles/main.css';
import 'uno.css';
export function createApp() {
const app = createSSRApp(App);

View File

@ -9,10 +9,12 @@ const appTitle = 'uniapp-vue3';
<template>
<view class="flex flex-col items-center gap-y-2 pt-36">
<image :src="logo" class="h-8 w-8" alt="" mode="widthFix" />
<view class="text-xl font-semibold">
<view class="text-xl font-semibold text-red">
{{ appTitle }}
</view>
<view>当前平台{{ platform }}</view>
<view class="text-red">
当前平台{{ platform }}
</view>
</view>
</template>

View File

@ -1 +0,0 @@
@import 'tailwindcss';

69
unocss.config.ts Normal file
View File

@ -0,0 +1,69 @@
import { defineConfig, presetIcons } from 'unocss';
import presetWeapp from 'unocss-preset-weapp';
import { transformerAttributify, transformerClass } from 'unocss-preset-weapp/transformer';
import { isWeixinMp } from './build/platform';
const prefix = '';
const transformRules = {
'.': '-d2e-',
'/': '-s2f-',
':': '-c3a-',
'%': '-p25-',
'!': '-e21-',
'#': '-w23-',
'(': '-b28-',
')': '-b29-',
'[': '-f4b-',
']': '-f5d-',
'$': '-r24-',
',': '-r2c-',
};
export default defineConfig({
presets: [
// https://github.com/MellowCo/unocss-preset-weapp
presetWeapp({
prefix,
whRpx: false,
transform: isWeixinMp as boolean,
platform: 'uniapp',
transformRules,
}) as any,
presetIcons({
scale: 1.2,
warn: true,
}),
],
shortcuts: [
{
center: 'flex justify-center items-center',
},
],
theme: {
colors: {
primary: '#007AFF',
secondary: '#4CD964',
danger: '#FF3B30',
warning: '#FF9500',
info: '#5AC8FA',
light: '#F0F0F0',
dark: '#1A1A1A',
},
fontSize: {
mini: ['20rpx', '26rpx'],
},
},
transformers: [
// options https://github.com/MellowCo/unocss-preset-weapp/tree/main/src/transformer/transformerAttributify
transformerAttributify({
classPrefix: prefix,
transformRules,
nonValuedAttribute: true,
}) as any,
// options https://github.com/MellowCo/unocss-preset-weapp/tree/main/src/transformer/transformerClass
transformerClass({
transformRules,
}),
],
});

View File

@ -39,9 +39,6 @@ export default defineConfig(async ({ mode }) => {
silenceDeprecations: ['legacy-js-api'],
},
},
// postcss: {
// plugins: postcssPlugins,
// },
},
plugins: createVitePlugins({ isProd }),
// 开发服务器配置