diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 0000000..16f9eae
Binary files /dev/null and b/.DS_Store differ
diff --git a/.npmrc b/.npmrc
index 54d704c..7b91ab7 100644
--- a/.npmrc
+++ b/.npmrc
@@ -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
+public-hoist-pattern[]=*vue*
+shamefully-hoist=true
+
diff --git a/.versionrc b/.versionrc
deleted file mode 100644
index 8ca3449..0000000
--- a/.versionrc
+++ /dev/null
@@ -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},
- ]
-}
diff --git a/.versionrc.cjs b/.versionrc.cjs
new file mode 100644
index 0000000..91a164e
--- /dev/null
+++ b/.versionrc.cjs
@@ -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 },
+ ],
+};
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 12cd116..c093956 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -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)
diff --git a/README.md b/README.md
index f758b51..ae70fe1 100644
--- a/README.md
+++ b/README.md
@@ -17,7 +17,7 @@
-
+
@@ -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
diff --git a/build/platform.ts b/build/platform.ts
index 0282e9b..830f6e3 100644
--- a/build/platform.ts
+++ b/build/platform.ts
@@ -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,
};
diff --git a/build/vitePlugins.ts b/build/vitePlugins.ts
index 8da09c1..06af119 100644
--- a/build/vitePlugins.ts
+++ b/build/vitePlugins.ts
@@ -1,10 +1,10 @@
import type { PluginOption } from 'vite';
import uni from '@dcloudio/vite-plugin-uni';
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
@@ -14,12 +14,8 @@ export function createVitePlugins({ isProd }: VitePluginConfig): PluginOption[]
return [
// @ts-expect-error TODO uni() 会报错:uni is not a function,暂时使用此方式解决
uni?.default(),
- uvtw({
- rem2rpx: true,
- disabled: WeappTailwindcssDisabled,
- // 使用新的 ast-grep 来处理 js 资源,速度是 babel 的2倍左右
- // 需要先安装 `@ast-grep/napi`
- // jsAstTool: 'ast-grep'
+ Unocss({
+ hmrTopLevelAwait: false,
}),
autoImport({
include: [
diff --git a/bun.lockb b/bun.lockb
deleted file mode 100644
index 57b65a8..0000000
Binary files a/bun.lockb and /dev/null differ
diff --git a/package.json b/package.json
index f9a5a50..13e8528 100644
--- a/package.json
+++ b/package.json
@@ -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",
@@ -43,65 +42,63 @@
"version:major": "commit-and-tag-version --release-as major"
},
"dependencies": {
- "@alova/adapter-uniapp": "^2.0.9",
- "@alova/mock": "^2.0.9",
- "@alova/shared": "^1.1.0",
- "@dcloudio/uni-app": "3.0.0-alpha-4030220241101001",
- "@dcloudio/uni-app-plus": "3.0.0-alpha-4030220241101001",
- "@dcloudio/uni-components": "3.0.0-alpha-4030220241101001",
- "@dcloudio/uni-h5": "3.0.0-alpha-4030220241101001",
- "@dcloudio/uni-i18n": "3.0.0-alpha-4030220241101001",
- "@dcloudio/uni-mp-alipay": "3.0.0-alpha-4030220241101001",
- "@dcloudio/uni-mp-baidu": "3.0.0-alpha-4030220241101001",
- "@dcloudio/uni-mp-kuaishou": "3.0.0-alpha-4030220241101001",
- "@dcloudio/uni-mp-lark": "3.0.0-alpha-4030220241101001",
- "@dcloudio/uni-mp-qq": "3.0.0-alpha-4030220241101001",
- "@dcloudio/uni-mp-toutiao": "3.0.0-alpha-4030220241101001",
- "@dcloudio/uni-mp-weixin": "3.0.0-alpha-4030220241101001",
- "@dcloudio/uni-quickapp-webview": "3.0.0-alpha-4030220241101001",
+ "@alova/adapter-uniapp": "^2.0.11",
+ "@alova/mock": "^2.0.13",
+ "@alova/shared": "^1.1.2",
+ "@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.2",
+ "alova": "^3.2.10",
"crypto-js": "^4.2.0",
"lodash-es": "^4.17.21",
- "pinia": "^2.2.6",
- "vue": "^3.5.12"
+ "pinia": "^2.3.1",
+ "vue": "^3.5.13"
},
"devDependencies": {
- "@antfu/eslint-config": "^3.8.0",
+ "@antfu/eslint-config": "^4.11.0",
"@dcloudio/types": "^3.4.14",
- "@dcloudio/uni-automator": "3.0.0-alpha-4030220241101001",
- "@dcloudio/uni-cli-shared": "3.0.0-alpha-4030220241101001",
- "@dcloudio/uni-stacktracey": "3.0.0-alpha-4030220241101001",
- "@dcloudio/uni-uts-v1": "3.0.0-alpha-4030220241101001",
- "@dcloudio/vite-plugin-uni": "3.0.0-alpha-4030220241101001",
- "@egoist/tailwindcss-icons": "^1.8.1",
- "@iconify/json": "^2.2.270",
- "@rollup/plugin-node-resolve": "^15.3.0",
+ "@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": "^20.17.6",
- "@vitejs/plugin-vue": "^5.1.4",
- "@vue/runtime-core": "^3.5.12",
- "autoprefixer": "^10.4.20",
+ "@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.14.0",
- "eslint-plugin-format": "^0.1.2",
- "globals": "^15.12.0",
- "lint-staged": "^15.2.10",
+ "eslint": "^9.23.0",
+ "eslint-plugin-format": "^1.0.1",
+ "globals": "^16.0.0",
+ "lint-staged": "^15.5.0",
"picocolors": "^1.1.1",
- "postcss": "^8.4.47",
- "rollup-plugin-visualizer": "^5.12.0",
- "sass": "^1.80.6",
- "simple-git-hooks": "^2.11.1",
- "tailwindcss": "^3.4.14",
- "tsx": "^4.19.2",
- "typescript": "^5.6.3",
+ "rollup-plugin-visualizer": "^5.14.0",
+ "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": "^0.18.3",
- "vite": "^5.4.10",
- "vite-plugin-restart": "^0.4.1",
- "weapp-tailwindcss": "^3.7.0"
+ "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",
diff --git a/postcss.config.ts b/postcss.config.ts
deleted file mode 100644
index 1f941ac..0000000
--- a/postcss.config.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import type { AcceptedPlugin } from 'postcss';
-import autoprefixer from 'autoprefixer';
-import tailwindcss from 'tailwindcss';
-import cssMacro from 'weapp-tailwindcss/css-macro/postcss';
-
-const plugins: AcceptedPlugin[] = [tailwindcss(), autoprefixer()];
-
-// 可以使用 postcss-pxtransform 来进行 px 转 rpx 的功能
-
-plugins.push(cssMacro);
-
-export default plugins;
diff --git a/src/.DS_Store b/src/.DS_Store
new file mode 100644
index 0000000..8f58053
Binary files /dev/null and b/src/.DS_Store differ
diff --git a/src/App.vue b/src/App.vue
index 6ee2ae9..9a62c9e 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -15,8 +15,5 @@ onHide(() => {
});
-
diff --git a/src/components/.DS_Store b/src/components/.DS_Store
new file mode 100644
index 0000000..e81f1c9
Binary files /dev/null and b/src/components/.DS_Store differ
diff --git a/src/main.ts b/src/main.ts
index c723877..0bf2abc 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -2,6 +2,8 @@ import { createSSRApp } from 'vue';
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);
diff --git a/src/pages/.DS_Store b/src/pages/.DS_Store
new file mode 100644
index 0000000..761c01b
Binary files /dev/null and b/src/pages/.DS_Store differ
diff --git a/src/pages/index/index.vue b/src/pages/index/index.vue
index 1caa986..9b5ef9e 100644
--- a/src/pages/index/index.vue
+++ b/src/pages/index/index.vue
@@ -9,10 +9,12 @@ const appTitle = 'uniapp-vue3';
-
+
{{ appTitle }}
- 当前平台:{{ platform }}
+
+ 当前平台:{{ platform }}
+
diff --git a/src/services/.DS_Store b/src/services/.DS_Store
new file mode 100644
index 0000000..53c249c
Binary files /dev/null and b/src/services/.DS_Store differ
diff --git a/src/static/.DS_Store b/src/static/.DS_Store
new file mode 100644
index 0000000..4230501
Binary files /dev/null and b/src/static/.DS_Store differ
diff --git a/src/stores/app.ts b/src/stores/app.ts
index 87a6977..ee4c344 100644
--- a/src/stores/app.ts
+++ b/src/stores/app.ts
@@ -1,11 +1,10 @@
-import { defineStore } from 'pinia';
+// import { defineStore } from 'pinia';
interface AppState {
sys?: string | number
}
-export const useAppStore = defineStore({
- id: 'app-store',
+export const useAppStore = defineStore('app-store', {
state: (): AppState => ({}),
getters: {},
actions: {},
diff --git a/src/stores/modules/user.ts b/src/stores/modules/user.ts
index 9c04945..2ccf512 100644
--- a/src/stores/modules/user.ts
+++ b/src/stores/modules/user.ts
@@ -11,10 +11,10 @@ export const useUserStore = defineStore('UserStore', () => {
const userInfo = ref(null);
// 初始化
- function initUserInfo() {
+ async function initUserInfo() {
if (isLogin()) {
token.value = getToken();
- getUserInfo();
+ await getUserInfo();
}
}
@@ -35,7 +35,7 @@ export const useUserStore = defineStore('UserStore', () => {
}
// 获取用户信息
- const { send: _getUserInfo } = useRequest(getUserInfoApi, { initialData: null, immediate: false });
+ const { send: _getUserInfo } = useRequest(getUserInfoApi, { immediate: false });
async function getUserInfo() {
try {
userInfo.value = await _getUserInfo();
diff --git a/src/utils/.DS_Store b/src/utils/.DS_Store
new file mode 100644
index 0000000..623b192
Binary files /dev/null and b/src/utils/.DS_Store differ
diff --git a/unocss.config.ts b/unocss.config.ts
new file mode 100644
index 0000000..8c68e7a
--- /dev/null
+++ b/unocss.config.ts
@@ -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,
+ }),
+ ],
+});
diff --git a/vite.config.ts b/vite.config.ts
index 43a5c48..2d72fc7 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -9,7 +9,7 @@ import process from 'node:process';
import TransformPages from 'uni-read-pages-vite';
import { defineConfig, loadEnv } from 'vite';
import { createVitePlugins, currentPlatform, resolveProxy } from './build';
-import postcssPlugins from './postcss.config';
+// import postcssPlugins from './postcss.config';
export default defineConfig(async ({ mode }) => {
const root = process.cwd();
@@ -39,9 +39,6 @@ export default defineConfig(async ({ mode }) => {
silenceDeprecations: ['legacy-js-api'],
},
},
- postcss: {
- plugins: postcssPlugins,
- },
},
plugins: createVitePlugins({ isProd }),
// 开发服务器配置