uniapp引入vantweapp踩坑笔记

news2025/1/13 3:35:37

vue-cli创建uniapp项目引入vantweapp踩坑笔记

uni-app中引入vantweapp

  • vue-cli创建uniapp项目引入vantweapp踩坑笔记
    • 一、环境准备
    • 二、项目搭建
    • 三、引入vant
      • 第一种方式
      • 第二种方式

一、环境准备

我用的环境分别是

软件名称版本号下载命令\链接检查是否成功卸载命令
Vue-cli@vue/cli 4.5.19npm install -g @vue/cli
cnpm install -g @vue/cli
yarn global add @vue/cli
vue -V
vue --version
npm uninstall -g @vue/cli
cnpm uninstall -g @vue/cli
yarn global remove @vue/cli
nodev16.17.0https://nodejs.org/en/download/releases/
也可以使用nvm下载 这里就不赘述了
node -v在官网下载的可以直接在控制面板卸载
使用nvm的可以使用nvm的卸载命令卸载
npm8.15.0跟随node自动安装npm -v跟随node自动卸载

​ 这里使用Vue-cli4的版本是因为在网上看到Vue-cli5的版本会有兼容性问题,所以这里使用了4的版本,环境准备好之后就开始踩坑环节,不得不说,uni-app引入vant坑是真滴多!!!一步一个坑,我这边是硬踩坑过来的,以此文章来让大家避免踩坑

二、项目搭建

  • vue-cli创建项目命令
vue create -p dcloudio/uni-preset-vue demo-uni

在这里插入图片描述

当我满怀信心的开始创建项目,但刚开始创建项目就遇到了问题,出师不利,问题如下,输入命令时报错(后边发现这个报错不是每次都会出现,因为下载源问题,)本着遇到报错不用慌,打开百度问度娘的原则,最后还是在百度找到了方法,原来是dcloudio/uni-preset-vue下载源的问题,我便在GitHub下载它的源码,把命令替换成下载文件的路径就好了,替换过后的命令如下:

vue create -p D:\code\demo\uni-preset-vue-master demo-uni

因为我使用的是默认模板,测试项目可以运行,下面就要进行引入vant的坎坷之旅了

在这里插入图片描述

三、引入vant

​ 因为vant分为vue2版本、vue3版本和小程序版本等,需要找到相对应的vant版本,于是就在vant官网找到了微信小程序版本vant-weapp,因为是第一次在uni-app中引入vant,以为和其他组件库一样,直接利用npm安装就好了,幸好我喜欢先过一遍安装流程再来安装,我发现vant-weapp默认提供的是利用原生小程序的引入方式,且不兼容Vue-cli创建的uni-app项目,没办法,只能继续面向百度编程,当浏览了一系列文章之后,发现vant-weapp可以在Github下载源文件进行引入,便进入到了vant-weapp的Github的网站,下载了最新的安装包,如图下图所示:
在这里插入图片描述

​ 下载完成之后将文件中的dist目录文件放入项目中的wxcomponents文件中,ps:wxcomponents文件应放到src下,并且名字不可改变,我这边的目录结构如下图所示,在src下新创建了一个wxcomponents文件,并将下载完成文件中的dist文件放入,改名为vant

在这里插入图片描述

第一种方式

​ 将以上操作做完之后,接下来就是最重要的一步,在全局引用这些组件样式,根据uni-app官方文档所示,uni-app提供了easycom自动按需打包的一个配置项,我们直接将文档中的示例代码粘贴到我们项目中的pages.json文件中,并将它的配置改成我们需要的配置,如下图所示:

	"easycom": {
 "autoscan": true,
 "custom": {
    "^van-(.*)": "@/wxcomponents/vant/$1/index.vue"
 }

在这里插入图片描述

第二种方式

​ 除了利用easycom引入 如果同时引入了uni-ui,用easycom方式引入vant,在小程序运行会报下图错误,还可以使用vant官方的按需引入,此方法缺点就是用到哪些组件必须手动引入才可以,否则就会报错,

在这里插入图片描述

​ 在pages.json中的globalStyle属性中引入以下代码:

"usingComponents": { 
			"van-action-sheet": "/wxcomponents/vant/action-sheet/index",
			"van-area": "/wxcomponents/vant/area/index",
			// "van-badge": "/wxcomponents/vant/badge/index",
			// "van-badge-group": "/wxcomponents/vant/badge-group/index",
			"van-button": "/wxcomponents/vant/button/index",
			"van-card": "/wxcomponents/vant/card/index",
			"van-cell": "/wxcomponents/vant/cell/index",
			"van-cell-group": "/wxcomponents/vant/cell-group/index",
			"van-checkbox": "/wxcomponents/vant/checkbox/index",
			"van-checkbox-group": "/wxcomponents/vant/checkbox-group/index",
			"van-col": "/wxcomponents/vant/col/index",
			"van-dialog": "/wxcomponents/vant/dialog/index",
			"van-field": "/wxcomponents/vant/field/index",
			"van-goods-action": "/wxcomponents/vant/goods-action/index",
			"van-goods-action-icon": "/wxcomponents/vant/goods-action-icon/index",
			"van-goods-action-button": "/wxcomponents/vant/goods-action-button/index",
			"van-icon": "/wxcomponents/vant/icon/index",
			"van-loading": "/wxcomponents/vant/loading/index",
			"van-nav-bar": "/wxcomponents/vant/nav-bar/index",
			"van-notice-bar": "/wxcomponents/vant/notice-bar/index",
			"van-notify": "/wxcomponents/vant/notify/index",
			"van-panel": "/wxcomponents/vant/panel/index",
			"van-popup": "/wxcomponents/vant/popup/index",
			"van-progress": "/wxcomponents/vant/progress/index",
			"van-radio": "/wxcomponents/vant/radio/index",
			"van-radio-group": "/wxcomponents/vant/radio-group/index",
			"van-row": "/wxcomponents/vant/row/index",
			"van-search": "/wxcomponents/vant/search/index",
			"van-slider": "/wxcomponents/vant/slider/index",
			"van-stepper": "/wxcomponents/vant/stepper/index",
			"van-steps": "/wxcomponents/vant/steps/index",
			"van-submit-bar": "/wxcomponents/vant/submit-bar/index",
			"van-swipe-cell": "/wxcomponents/vant/swipe-cell/index",
			"van-switch": "/wxcomponents/vant/switch/index",
			// "van-switch-cell": "/wxcomponents/vant/switch-cell/index",
			"van-tab": "/wxcomponents/vant/tab/index",
			"van-tabs": "/wxcomponents/vant/tabs/index",
			"van-tabbar": "/wxcomponents/vant/tabbar/index",
			"van-tabbar-item": "/wxcomponents/vant/tabbar-item/index",
			"van-tag": "/wxcomponents/vant/tag/index",
			"van-toast": "/wxcomponents/vant/toast/index",
			"van-transition": "/wxcomponents/vant/transition/index",
			"van-tree-select": "/wxcomponents/vant/tree-select/index",
			"van-datetime-picker": "/wxcomponents/vant/datetime-picker/index",
			"van-rate": "/wxcomponents/vant/rate/index",
			"van-collapse": "/wxcomponents/vant/collapse/index",
			"van-collapse-item": "/wxcomponents/vant/collapse-item/index",
			"van-picker": "/wxcomponents/vant/picker/index"
		}

后边的地址要跟文件地址保持一致,此方式与uni-app提供的方式使用一种就可以

​ 完成以上操作之后就可以在组件中使用vant-weapp中的组件来进行测试,当我重新启动项目的时候又报了一个错,如图所示:

在这里插入图片描述

上图的大概意思为在src/wxcomponents/vant/icon/index.vue文件中的样式出现了问题,然后就根据提示的路径找到了这个文件,打开后发现都是一些打包过后的样式,刚进去时候一脸蒙,不知道这些样式出现了什么问题,也不敢轻易的修改文件,这时候又到了面向百度的时候了,通过在百度的帮助下,我发现原来是打包过后导致了字体文件路径出错,一共有两种方式可以解决,

  • 第一个方法为格式化文档,ps:此方法的前提是要装有Prettier插件,并且有格式化相关的配置,直接格式化文档就好了,
  • 第二个方法就是直接拉到文件的最下放,会发现文件下方是一些引入字体的样式文件,报错原因就是打包之后这些代码直接没有空格隔开,浏览器识别不到,解决方法也很简单,如下图所示,在标记的地方打上一个空格隔开之后存,项目就会正常运行了,并且按钮组件也运用成功了

在这里插入图片描述

在这里插入图片描述

​ 当我以为大功告成的时候,它又双叒叕报错了,在修改完文件之后它报了找不到url-loader的错误,如下图所示,但这个错误想对就比较简单了,利用npm安装一下url-loader就好了,命令如下:

npm install url-loader

在这里插入图片描述

​ 安装完成url-loader之后,项目成功运行,但我发现有些项目中到这里会有一个小小的问题,每次运行项目都要重复格式化上边的字体,比较麻烦,这个问题我找了半天也没有找到解决的方法,但我在自己的demo中只格式化了一次,后边直接打开就可以用,如有需要,可以从我的GitHub或者Gitee中来直接下载模板引用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/156518.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaScript中的重要概念

JavaScript中的重要概念 1、标识符 标识符(Identifier)就是名字。JavaScript 中的标识符包括变量名、函数名、参数名、属性名、类名等。 合法的标识符应该注意以下强制规则: 第一个字符必须是字母、下划线(_)或美元…

发表计算机SCI论文,需要经历哪些阶段? - 易智编译EaseEditing

想在SCI期刊上发表一篇属于自己的论文一定是要经历四个阶段:论文选题、论文写作、期刊投稿和修稿反馈。 1.论文选题:前面已经说过在SCI期刊上发表论文是比较有难度的,是因为SCI期刊通常要求所接收稿件的选题具有较高的创新性和新颖性。 所以…

马蹄集 单位矩阵

单位矩阵 难度&#xff1a;白银 0时间限制&#xff1a;1秒 巴占用内存&#xff1a;64M 输入3X3的整型矩阵A,判断是否为单位矩阵&#xff0c;输出YES或者NO。 格式 输入格式&#xff1a;输入矩阵&#xff0c;空格分隔 输出格式&#xff1a;输出YES或者NO #include<bits/stdc.…

第09讲:Docker镜像制作

我们可以在容器去部署应用&#xff0c;然后把容器转为镜像给测试人员用&#xff0c;由于镜像是不能直接传输的&#xff0c;所以我们将新的镜像转成压缩文件&#xff0c;给测试人员。测试人员把我们的压缩文件还原成一个新的镜像。 一、Linux文件系统组成 Linux文件系统组成由…

mysql快速生成100W条测试数据(2)公司员工信息

首先这个就是我们需要生成的数据类型&#xff0c;这种只是我们用于测试以及学习时候使用&#xff0c;正常来讲公司架构会比这个要复杂的多 #mermaid-svg-fxDINAOpv25PiDLG {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid…

数据库,计算机网络、操作系统刷题笔记31

数据库&#xff0c;计算机网络、操作系统刷题笔记31 2022找工作是学历、能力和运气的超强结合体&#xff0c;遇到寒冬&#xff0c;大厂不招人&#xff0c;可能很多算法学生都得去找开发&#xff0c;测开 测开的话&#xff0c;你就得学数据库&#xff0c;sql&#xff0c;oracle…

SpringBoot中JPA的基本使用

1、Jpa 是什么 JPA顾名思义就是Java Persistence API的意思&#xff0c;是JDK 5.0注解或XML描述对象&#xff0d;关系表的映射关系&#xff0c;并将运行期的实体对象持久化到数据库中。 2、优势 2.1标准化 JPA 是 JCP 组织发布的 Java EE 标准之一&#xff0c;因此任何声称符…

美国空运专线 美国空运专线时效多久

美国空运专线是国内到美国的优势渠道&#xff0c;为跨境卖家专门研发的货物海关清关快递/卡车配送的专线运输服务&#xff0c;范畴覆盖全部美国地区&#xff0c;各路经安排发货次数更高一些&#xff0c;时效更有保障。一、美国空运专线是什么 美国空运专线是专门将货物运送到美…

开学季如何运营跑腿系统?

现在学生们都在放寒假中&#xff0c;再过一段时间就又到开学季了&#xff0c;开学季是运营好跑腿项目的关键时刻&#xff0c;刚开学的时候如何让同学继续使用呢&#xff1f;这时候我们可以采取一些优惠政策来吸引同学&#xff0c;我们可以在后台设置一些优惠券&#xff0c;满减…

nacos1.4.0与seata搭建实现分布式物

下载nacos https://github.com/alibaba/nacos/tagshttps://github.com/alibaba/nacos/releases/tag/1.4.0下载seata https://github.com/seata/seata/releases/tag/v1.4.0注意&#xff1a;最好使用相同版本&#xff0c;不然出问题会找很久的 创建seata数据库 1.创建数据库导…

Termius ssh ubuntu、kali、centos

目录Termius ssh ubuntu、centos、kali一、Ubuntu开启ssh服务及允许root登录1、Ubuntu默认没有安装ssh的server&#xff0c;需要安装2、允许远程使用root账号ssh连接本机修改/etc/ssh/sshd_config文件3、需要重启系统或者ssh服务&#xff0c;刚安装完ssh-sserver服务默认开启4、…

【自然语言处理】实验1答案:Word2Vec TransE案例

NLP_class 学堂在线《自然语言处理》实验课代码报告&#xff0c;授课老师为刘知远老师。课程链接&#xff1a;https://www.xuetangx.com/training/NLP080910033761/1017121?channeli.area.manual_search。 持续更新中。 所有代码为作者所写&#xff0c;并非最后的“标准答案…

MyBatisPlus-注解的使用

注解 | MyBatis-PlusMyBatis-Plus 官方文档https://baomidou.com/pages/223848/#idtype因为在MyBatisPlus中都是通过实体类映射到数据库的字段中&#xff0c;所以处理好实体类与数据库表中字段的映射关系就很重要&#xff0c;MyBatisPlus提供的注解可以解决数据库中表名、字段名…

简道云教学 | 零代码应用开发软件助力应用型高校学生创新能力培养

“高校的数字化转型两大抓手&#xff0c;一个是学校管理系统的数字化建设&#xff0c;另一个是学生数字化素养的提升&#xff0c;简道云在我校信息化管理中的广泛应用是我们使用零代码平台进行创新能力培养的良好基础。” ————河南工学院 刘丹教授 河南工学院位于豫北工业名…

CSS初级教程(图例-链接-列表-表格)【第八天 完】

文章目录【1】CSS 图标【2】CSS 链接【3】CSS 列表【4】所有 CSS 列表属性【5】CSS 表格【6】CSS 所有表格属性CSS上回学习链接 CSS初级教程 颜色【第一天】 CSS初级教程 背景【第二天】 CSS初级教程 边框【第三天】 CSS初级教程 边距、高度、宽度【第四天】 CSS初级教程(轮廓…

使用批处理文件和mkvtoolnix批量修改默认音轨和音轨属性并重新混流

工具和版本 windows10 x64 MkvToolNix v73 待输出的Mkv格式文件&#xff0c;要求是同类型的文件&#xff0c;比如从迅雷下载下来同一来源的连续剧 步骤 一、添加文件 打开MkvToolNix GUI&#xff0c;添加输入文件&#xff0c;选中一个待输出的文件A 二、编辑音轨 选中音…

IOC底层实现原理介绍,手动实现IOC容器

面试官特别爱问SpringIOC底层实现&#xff0c;Spring源码晦涩难懂怎么办呢? 跟着老师手动实现一个mini ioc容器吧&#xff0c;实现后再回头看Spring源码事半功倍哦&#xff0c;就算直接和面试官讲也完全可以哦&#xff0c;类名完全按照源码设计&#xff0c;话不多说开干~!手动…

葡聚糖-叶酸;Dextran-FA;Dextran-Folicacid 结构式;科研试剂简介

名称&#xff1a;Dextran-Folicacid 中文名&#xff1a;叶酸修饰的葡聚糖 别称&#xff1a;葡聚糖-FA,葡聚糖-叶酸 存储条件&#xff1a;-20C&#xff0c;避光&#xff0c;避湿 外观: 固体或类白色絮状&#xff0c;取决于分子量 溶剂&#xff1a;溶于大部分有机溶剂&#…

HTAP 能够取代 OLAP 吗?

HTAP是什么 HTAP(Hybrid Transaction and Analytical Processing)数据库&#xff0c;也称混合型关系数据库&#xff0c;是能同时提供OLTP和OLAP的混合关系型数据库。在互联网浪潮出现之前&#xff0c;企业的数据量普遍不大&#xff0c;特别是核心的业务数据&#xff0c;通常一个…

【深入理解JVM】垃圾收集器内存分配策略

目录 gc root对象有哪些 oopMap 安全点&#xff08;safe point&#xff09; 安全区域 卡表 伪共享问题 三色标记法 垃圾收集器 CMS G1 gc root对象有哪些 虚拟机栈中引用的对象&#xff08;虚拟机栈中的引用的对象可以作为GC Root。我们程序在虚拟机的栈中执行&…