# uniapp脚手架 **Repository Path**: hanjiangjiaolong/uniapp-scaffold ## Basic Information - **Project Name**: uniapp脚手架 - **Description**: uniapp脚手架 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2024-09-14 - **Last Updated**: 2024-09-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # vue3+vite+uniapp小程序搭建流程 ### 一、初始化项目 通过vue-cli创建uni-app项目 ```shell npx degit dcloudio/uni-preset-vue#vite my-vue3-project ``` ``` ┌─ ├─ components uni-app组件目录 │ └─comp-a.vue 可复用的a组件 ├─pages 业务页面文件存放的目录 │ └─index │ index.vue ├─static 存放应用引用静态资源(如图片、视频等)的目录,注意:静态资源只能存放于此 │ logo.png ├─uni_modules │ ├─uni-transition │ └─uni-ui ├─unpackage │ └─dist │ App.vue 应用配置,用来配置小程序的全局样式、生命周期函数等 │ index.html │ main.js Vue初始化入口文件 │ manifest.json 配置应用名称、appid、logo、版本等打包信息 │ pages.json 配置页面路径、页面窗口样式、tabBar、navigationBar 等页面类信息 └─ uni.scss ``` ### 二、引用scss样式 ```shell npm install sass node-sass sass-loader@10 -D ``` ### 三、语法糖插件 解决 `import { ref , reactive ..... } from 'vue'` 大量引入的问题 配置后可以不用引入,直接使用 ```shell npm i -D unplugin-auto-import ``` `vite.config.js` ```javascript import { defineConfig } from 'vite' import uni from '@dcloudio/vite-plugin-uni' import AutoImport from 'unplugin-auto-import/vite' // https://vitejs.dev/config/ export default defineConfig({ plugins: [ uni(), AutoImport({ imports: ['vue', 'vue-router'] }) ], }) ``` ### 四、解决@路径问题 `vite.config.js` ```javascript import { defineConfig } from 'vite' import uni from '@dcloudio/vite-plugin-uni' import AutoImport from 'unplugin-auto-import/vite' const path = require('path'); // https://vitejs.dev/config/ export default defineConfig({ plugins: [ uni(), AutoImport({ imports: ['vue', 'vue-router'] }) ], resolve: { // 配置路径别名 alias: { '@': path.resolve(__dirname, './src') } } }) ``` ### 五、安装uview-plus ```javascript // 如果您的根目录没有package.json文件的话,请先执行如下命令: // npm init -y npm install uview-plus npm install dayjs npm install clipboard // 更新 // npm update uview-plus ``` ```js // main.js import uviewPlus from 'uview-plus' app.use(uviewPlus) ``` #### 在引入uview-plus的全局SCSS主题文件 在项目根目录的`uni.scss`中引入此文件。 ```css /* uni.scss */ @import 'uview-plus/theme.scss'; ``` #### 引入uview-plus基础样式 注意! 在`App.vue`中**首行**的位置引入,注意给style标签加入lang="scss"属性 ```css ``` #### 配置easycom组件模式 此配置需要在项目`src`目录的`pages.json`中进行。 温馨提示 1. uni-app为了调试性能的原因,修改`easycom`规则不会实时生效,配置完后,您需要重启HX或者重新编译项目才能正常使用uview-plus的功能。 2. 请确保您的`pages.json`中只有一个`easycom`字段,否则请自行合并多个引入规则。 ```json // pages.json { "easycom": { "autoscan": true, // 注意一定要放在custom里,否则无效,https://ask.dcloud.net.cn/question/131175 "custom": { "^u--(.*)": "uview-plus/components/u-$1/u-$1.vue", "^up-(.*)": "uview-plus/components/u-$1/u-$1.vue", "^u-([^-].*)": "uview-plus/components/u-$1/u-$1.vue" } }, // 此为本身已有的内容 "pages": [ // ...... ] } ``` ### 六、引入组件测试页面 pages/index/index.vue ```vue ``` ![image-20240703230947155](./assets/image-20240703230947155.png) ### 七、自定义tabBar pages.json ```json { "easycom": { "autoscan": true, // 注意一定要放在custom里,否则无效,https://ask.dcloud.net.cn/question/131175 "custom": { "^u--(.*)": "uview-plus/components/u-$1/u-$1.vue", "^up-(.*)": "uview-plus/components/u-$1/u-$1.vue", "^u-([^-].*)": "uview-plus/components/u-$1/u-$1.vue" } }, "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages { "path": "pages/index/index", "style": { "navigationBarTitleText": "首页" } }, { "path": "components/g-tab-bar/g-tab-bar", "style": { "navigationBarTitleText": "下导航" } }, { "path": "pages/404/404", "style": { "navigationBarTitleText": "404页" } } ], "globalStyle": { "navigationBarTextStyle": "black", "navigationBarTitleText": "uni-app", "navigationBarBackgroundColor": "#F8F8F8", "backgroundColor": "#F8F8F8" }, "tabBar": { "custom": true, // 自定义底部菜单 "list": [{ "text": "首页", "pagePath": "pages/index/index" }, { "text": "404", "pagePath": "pages/404/404" } ] } } ``` App.vue ```vue ``` components/g-tab-bar/g-tab-bar.vue ```vue ``` pages/404/404.vue ```vue ```