当前位置: 首页 > news >正文

uni-app总结4-项目配置+HBuilder插件使用+uni插件使用

这篇文章将介绍uni-app开发过程中的部分项目配置(vite、自动化测试、unocss配置等)、HBuilderX插件使用(Prettier、github copilot等)以及uni插件使用(原生插件、UTS插件)。

一、项目配置 

        1. vite环境配置 

        1. 通过pnpm安装vite:pnpm add vite

        2. 新增vite.config.js配置文件,引入uni并设置为plugin

        2. 自动化测试配置(jest + vue test utils)

1. 通过pnpm添加相关依赖:

npm install --save-dev jest @vue/test-utils@next @vue/vue3-jest @babel/preset-env babel-jest jest-environment-jsdom

@vue/test-utils@next是给vue3使用的,如果是vue2.0直接使用稳定版

@vue/vue3-jeest也是专门给vue3使用的 ,如果是vue2.0使用@vue/vue-jest

jest-environment-jsdom是给jest测试时模拟dom环境的的

2. 新建babel.config.js文件或者是.babelrc文件,增加设置

module.exports = {presets: [['@babel/preset-env',{targets: {node: 'current'}}]]
};

3.  配置jest.config.js文件

新建一个jest.setup.js文件,配置如下:

module.exports = {

  // 转换规则  transform: {

    '^.+\.vue$': '@vue/vue3-jest',

    '^.+\.js$': 'babel-jest'

  },

  // 处理的文件扩展名  moduleFileExtensions: ['vue', 'js', 'json'],

  // 查找测试文件的规则  testMatch: [

    '**/tests/*.spec.js'

  ],

  // 收集代码覆盖率  collectCoverage: true,

  // 代码覆盖率报告格式  coverageReporters: ['html', 'text-summary'],

  setupFiles: ['./jest.setup.js'],

  testEnvironment: 'jsdom',

//一直提示Vue is not defined,添加下面这个红色部分就解决了

"testEnvironmentOptions": {

    "customExportConditions": ["node", "node-addons"]

  }

};

4. 配置jest.setup.js文件

新建一个jest.setup.js文件,文件配置如下:

global.uni = {

  showToast: jest.fn(),

  navigateTo: jest.fn()

  // 可以根据需要添加更多模拟的API

};

global.window = {};

global.document = {};

// 其他必要的全局变量模拟

5. 测试用例编写

import MyComponent from './MyComponent.vue';

import {

  mount

} from '@vue/test-utils';

describe('MyComponent', () => {

  it('renders the correct message', () => {

    const wrapper = mount(MyComponent);

    expect(wrapper.text()).toContain('Hello, Vue 3!');

  });

});

6. 在package.json中设置script,并通过terminal运行测试用例

  • package.json中增加script:

"scripts": {

"test": "jest"

},

  • terminal重通过指令来运行测试用例:

npm test 

        3. unocss配置

1. 首先通过pnpm继承unocss:pnpm add unocss

2. 在main.js 导入unocss: import 'uno.css'

3. 在vite.config.js中将unocss添加到plugins中并指定config文件

4. 创建unocss.config.js配置文件,设置一些预设

import presetWeapp from 'unocss-preset-weapp'
import {transformerClass,transformerAttributify
} from 'unocss-preset-weapp/transformer';
import {presetIcons,presetAttributify
} from "unocss"
export default ({presets: [presetWeapp(),presetIcons(),presetAttributify({prefix: "un-",prefixedOnly: false})],rules: [[/^size-(\d+)$/, ([, d]) => ({width: `${d}rpx`,height: `${d}rpx`})],],transformers: [transformerAttributify(),transformerClass()],//自定义缩写shortcuts: [{'border-base': 'border-[2rpx] border-gray-500_10 border-solid','center': 'flex justify-center items-center','size-alert': 'w-[600rpx] h-[400rpx]'}],//自定义样式theme: {color: {blue: 'rgba(22, 33, 255, 1)',red: '#e74c3c',sun: '#f1c40f',green: '#16a085',},border: {blue: 'rgba(22, 33, 255, 1)',red: '#e74c3c',sun: '#f1c40f',green: '#16a085',},},
})

        4. pnpm使用+patchs功能使用

  • pnpm使用

        1. 通过npm安装pnpm: npm install -g pnpm

        2. 通过pnpm 安装依赖:pnpm add 插件名称 (指定版本用插件名称@1.2.0)

  • pnpm的patchs功能使用

        对第三方依赖做本地修改,打包patch,每次更新时会自动添加到新版本。可以做到本地修改的保留。

        具体操作可以参考官方文档:pnpm patch <pkg> | pnpm        

二、HBuilder插件安装

首先介绍下如何安装HBuilder插件。

点击顶部菜单中的“工具” --> "插件安装"-->“安装新插件”。也可以直接前往插件市场(DCloud 插件市场)然后选择HBuilderX分类,选择自己需要的插件进行安装。 

1. Prettier代码格式化插件

        先安装Prettier插件,然后可以通过新建.prettierrc.js文件自定义代码格式规则,此文件提交到git可以保证多人开发规则统一,不会让代码格式混乱。还可以额外新增.prettierignore文件,设置忽略哪些文不做自动格式化处理。

2. Github Copilot AI插件

        这是一款AI编程协助插件,可以阅读代码上下文,给出代码提示。

        只需在插件市场搜索安装即可使用。可在HbuilderX中“插件设置”里设置相关参数(比如代理等)

3. eslint-js/eslint-plugin-vue插件

        代码错误检测及修复插件,在插件市场搜索安装即可。可在HbuilderX中“插件设置”里设置相关参数(比如保存时自动修复等)

三、uni插件使用

1. 原生插件使用

        在插件市场搜索需要使用的原生插件,通过插件市场集成到项目里。在manifest文件-->原生插件配置中配置需要的信息。然后根据文档在页面中导入和使用。

2. UTS插件使用

        在插件市场搜索需要使用的UTS插件,通过插件市场集成到项目里。UTS插件不需要再manifest中做任何配置,只需根据文档在页面中导入和使用即可。

http://www.lryc.cn/news/572170.html

相关文章:

  • 正则表达式一些例子
  • 视频续播功能实现 - 断点续看从前端到 Spring Boot 后端
  • 【Bug:docker】--Docker同时部署Dify和RAGFlow出现错误
  • web3 浏览器注入 (如 MetaMask)
  • 无人机电调技术要点与突破解析!
  • 插值与模板字符串
  • 宇鹿家政服务系统小程序ThinkPHP+UniApp
  • Spring Boot 工程启动以后,我希望将数据库中已有的固定内容,打入到 Redis 缓存中,请问如何处理?
  • WEB安全--WAF的绕过思路
  • Flutter中FutureBuilder和StreamBuilder
  • 对gateway和nocas的理解
  • DeepSeek 助力 Vue3 开发:打造丝滑的日历(Calendar),日历_项目里程碑示例(CalendarView01_22)
  • 局域网即时通讯软件评测:4款支持私有化部署的通讯软件对比
  • 2025 Java EasyExcel 基于Excel模板填充数据 SpringBoot+Mybatis-Flex
  • el-image在表格中显示,弹出的预览图片被遮挡,如何解决
  • 【网络空间安全】数据安全
  • 蜻蜓Q系统的技术演进:从Laravel 6到Laravel 8的升级之路-优雅草卓伊凡
  • 时序数据库概念及IoTDB特性详解
  • 若依导出模板时设置动态excel下拉框(表连接的)
  • 企微CRM系统中的任务分配与效率提升技巧
  • Mac电脑 - Sublim Text 代码编辑器
  • 大数据基础学习指南:从核心概念到技术生态全景
  • 蓝牙物联网多个核心应用场景开发与应用细化分析
  • Vue3中使用 Vue Flow 流程图方法
  • 在 Dify 平台部署一个 知识库问答(KBQA) 工作流
  • 设计模式之五大设计原则(SOLID原则)浅谈
  • 进程间通信2(命名管道)linux
  • 专题:2025游戏科技与市场趋势报告|附130+份报告PDF汇总下载
  • day35-Django(1)
  • FPGA基础 -- Verilog 系统任务与系统函数