# software-studio
**Repository Path**: xiangyang666/software-studio
## Basic Information
- **Project Name**: software-studio
- **Description**: 陕工院-软件工作室项目(微信小程序端)
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2023-12-12
- **Last Updated**: 2024-12-30
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 陕工院-软件工作室
### 技术栈:uniapp + vue3 + pinia + scss + uview-plus
*https://uniapp.dcloud.net.cn/quickstart-cli.html*
> npx degit dcloudio/uni-preset-vue#vite my-vue3-project
### 自动导入 vue3 的 hooks
_借助 unplugin-auto-import/vite 这个插件_
1. 安装
> npm i -D unplugin-auto-import
2. Vite 配置
```js
import { defineConfig } from "vite";
import AutoImport from "unplugin-auto-import/vite";
// https://vitejs.dev/config/
export default defineConfig({
plugins: [
// 加上下面的配置
AutoImport({
include: [
/\.[tj]sx?$/, // .ts, .tsx, .js, .jsx
/\.vue$/,
/\.vue\?vue/, // .vue
],
imports: ["vue", "uni-app", "pinia"],
dts: "typings/auto-imports.d.ts",
}),
],
});
```
### pinia
1. 安装依赖
> npm install pinia@2.0.14
**注:如不指定版本号,则会出现一下报错**
*https://blog.csdn.net/weixin_39550080/article/details/134154746*
```js
vue3代码运行报错import { hasInjectionContext, inject, toRaw, watch, unref, markRaw, effectScope, ref,
No matching export in “node_modules/.pnpm/vue-demi@0.14.6_vue@3.2.47/node_modules/vue-demi/lib/index.mjs” for import “hasInjectionContext”
node_modules/.pnpm/pinia@2.1.7_typescript@5.0.4_vue@3.2.47/node_modules/pinia/dist/pinia.mjs:6:9:
6 │ import { hasInjectionContext, inject, toRaw, watch, unref, markRaw, effectScope, ref, isVue2, isRef, isReactive, set, getCurrentScope, onScopeDis…
╵ ~~~~~~~~~~~~~~~~~~~
D:\publicGroup\algo_riskmanagement_web\node_modules.pnpm\esbuild@0.17.19\node_modules\esbuild\lib\main.js:1636
let error = new Error(${text}${summary});
```
**原因:vue 版本和 pinia 版本不兼容导致,因为 vue 版本"vue": "3.2.17",pinia 版本"pinia": “^2.0.34”,这两个版本不兼容。**
### scss
1. 安装依赖
> npm install sass -D
2. 定义全局样式
- 新建 src\assets\base.scss 全局样式文件
> $bgColor: #ccc;
- 在 vite.config.js 中配置
```js
import { fileURLToPath, URL } from "node:url";
import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
// https://vitejs.dev/config/
export default defineConfig({
plugins: [vue()],
resolve: {
alias: {
"@": fileURLToPath(new URL("./src", import.meta.url)),
},
},
css: {
preprocessorOptions: {
scss: {
additionalData: `@import "@/assets/base.scss";`,
},
},
},
});
```
- 在组件中使用
```js
hello world
```
### uview-plus
1. 安装
> npm install uview-plus
2. 引入组件库
```js
// main.js
import { createSSRApp } from "vue";
import App from "./App.vue";
// 引入uview
import uviewPlus from "uview-plus";
// 查询到正在使用的uview-plus的版本:
console.log("当前项目uview-plus:" + uni.$uconfig.v);
export function createApp() {
const app = createSSRApp(App);
app.use(uviewPlus);
return {
app,
};
}
```
3. 在引入 uview-plus 的全局 SCSS 主题文件
_在项目根目录的 uni.scss 中引入此文件。_
```js
/* uni.scss */
@import 'uview-plus/theme.scss';
```
4. 配置 easycom 组件模式
此配置需要在项目 src 目录的 pages.json 中进行。
> uni-app 为了调试性能的原因,修改 easycom 规则不会实时生效,配置完后,您需要重启 HX 或者重新编译项目才能正常使用 uview-plus 的功能。
> 请确保您的 pages.json 中只有一个 easycom 字段,否则请自行合并多个引入规则。
```js
// pages.json
{
"easycom": {
// 注意一定要放在custom里,否则无效,https://ask.dcloud.net.cn/question/131175
"custom": {
"^u-(.*)": "uview-plus/components/u-$1/u-$1.vue"
}
}
}
```