因为要完成软件工程的项目,要做一个nativeApp,看了很多的技术文档以后决定使用多端兼容的uni-app来开发。组件方面的话最后决定使用目前比较火的Vant UI。但是看了CSDN和掘金上面的很多文章,似乎没有一篇是关于uni-app中使用Vite对vant组件进行按需引入(可能这个搭配技术还比较新吧,好像是去年12月份完善的技术),如果按照网上的vue-cli + vant的方法配置DCloud官网中提供的uni-app的项目似乎并不可行(满屏的bug)uni-app官网
,鉴于对Vant的热爱,经过本人不懈努力了2周后,终于成功的适配了!
下面就和各位分享一下如何uni-app + (Vite/Vue3) + vant UI按需引入使用到项目当中吧!
这一步很简单,就不展开来说了,只需要在使用cmd cd到你的文件夹(前提是装好node.js),这里我使用的是JS版本,当然,如果你们网络不好,也可以直接去官网中gitee下载。
npx degit dcloudio/uni-preset-vue#vite my-vue3-project
由于使用HbuilderX写uniapp比较方便,所以下面的演示将使用HBX向各位演示。

将文件夹拖进来,注意,一定要前面的文件夹表示变成“U”,才行。这里你们直接下载的话是没有node_modules文件夹的,所以才引出我们的下一步。
第一步,我们需要安装开发环境需要的依赖包,输入命令
npm install
安装完成以后,不出意外的话会弹出一堆的Warning,这个是环境版本的警告而已,不用怕。按照提示输入命令行
npm audit fix --force
检测项目依赖中的漏洞并自动安装需要更新的有漏洞的依赖,而不必再自己进行跟踪和修复。
然后,我们按照Vant官网上下载Vant,我们这里下载Vue 3
# Vue 3 项目,安装最新版 Vant
npm i vant
# Vue 2 项目,安装 Vant 2
npm i vant@latest-v2
接着,在 vite 项目中按需引入组件,我们需要安装一个插件, vite-plugin-style-import 。输入命令行(这里推荐按照官方的要求下载1.4.1版本,因为下载最新的2.0.0在写法上会和之前的有所不同,还可能导致兼容性的问题)
# 通过 npm 安装
npm i vite-plugin-style-import@1.4.1 -D
# 通过 yarn 安装
yarn add vite-plugin-style-import@1.4.1 -D
# 通过 pnpm 安装
pnpm add vite-plugin-style-import@1.4.1 -D
安装好后,我们这里需要做一个修改。找到node_modules里面,vuex文件夹,找到里面的package.json,

大约第十二行这里改成(改完后记得保存),这个是因为版本迭代,不改的话就会报写法规范的错误。
"./": "./*"

然后就是重点了!
这里我们结合使用的uni-app + vite而不是一般的vue_cli + vite项目,所以,这里我们需要在vite.config.js不能仅仅按照Vant上面的直接粘贴(会导致组件没办法使用,不兼容而报错)。所以要按照下面这样写(使用官方给出的UI引入插件)。
import { defineConfig } from "vite";
import uni from '@dcloudio/vite-plugin-uni'
import styleImport, { VantResolve } from "vite-plugin-style-import";
import path from "path"
// https://vitejs.dev/config/
export default defineConfig({
plugins: [
uni(),
styleImport({
resolves: [VantResolve()],
}),
],
resolve: {
alias: {
'@': path.resolve(__dirname, 'src')
}
}
});
然后,咱们的配置就完成了!
PS:如果要使用最新版的vite-plugin-style-import(2.0.0+)就按照一下步骤配置
npm i vite-plugin-style-import
因为插件的使用了 consola 包,所以这里我们也要给它装上
npm i consola -D
相应的,对应的uni-app中vite.config.js也要做出一定的修改(在2.0版本使用的就是createStyleImportPlugin而不是原来的styleImport)
import {
defineConfig
} from "vite";
import {
createStyleImportPlugin,
VantResolve
} from 'vite-plugin-style-import';
import uni from '@dcloudio/vite-plugin-uni'
import path from "path"
// https://vitejs.dev/config/
export default defineConfig({
plugins: [
uni(),
createStyleImportPlugin({
resolves: [VantResolve()],
}),
],
resolve: {
alias: {
'@': path.resolve(__dirname, 'src')
}
}
});
这里就可以按照Vant文档中的几种方法进行配置,我这里就不作展开了。这里我使用的是<script setup>的方法。<script setup> 是在单文件组件 (SFC) 中使用组合式 API 的编译时语法糖。在 <script setup> 中可以直接使用 Vant 组件,不需要进行组件注册(因为比较简单,所以我用了这个,但是不好的地方是在于他只能使用给定的组件名)。
<template>
<view class="content">
<image class="logo" src="/static/logo.png"></image>
<Button type="primary">主要按钮</Button>
<Button type="success">成功按钮</Button>
<Button type="default">默认按钮</Button>
<Button type="warning">警告按钮</Button>
<Button type="danger">危险按钮</Button>
</view>
</template>
<script setup>
import { Button } from 'vant';
</script>
<style>
.content {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.logo {
height: 200rpx;
width: 200rpx;
margin-top: 200rpx;
margin-left: auto;
margin-right: auto;
margin-bottom: 50rpx;
}
.text-area {
display: flex;
justify-content: center;
}
.title {
font-size: 36rpx;
color: #8f8f94;
}
</style>
下面贴出测试代码和运行结果。(以h5为例)

f12的结果

PS:建议在运行代码时使用命令行的方式运行代码,而不是在HBX中使用运行到浏览器这个选项,因为会出现这种奇奇怪怪的ESC的符号,直接点击链接也是无效的。
举个栗子,比如说我要跑到h5里面,如下图这样做就好了

这就是本人经过实践出来的经验,如果有问题欢迎各位提出指正!
PS:不建议将vant4用于小程序开发,存在兼容性问题,如果要是用的话还是用vant-weapp吧
我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘
我正在尝试修改当前依赖于定义为activeresource的gem:s.add_dependency"activeresource","~>3.0"为了让gem与Rails4一起工作,我需要扩展依赖关系以与activeresource的版本3或4一起工作。我不想简单地添加以下内容,因为它可能会在以后引起问题:s.add_dependency"activeresource",">=3.0"有没有办法指定可接受版本的列表?~>3.0还是~>4.0? 最佳答案 根据thedocumentation,如果你想要3到4之间的所有版本,你可以这
我收到这个错误:RuntimeError(自动加载常量Apps时检测到循环依赖当我使用多线程时。下面是我的代码。为什么会这样?我尝试多线程的原因是因为我正在编写一个HTML抓取应用程序。对Nokogiri::HTML(open())的调用是一个同步阻塞调用,需要1秒才能返回,我有100,000多个页面要访问,所以我试图运行多个线程来解决这个问题。有更好的方法吗?classToolsController0)app.website=array.join(',')putsapp.websiteelseapp.website="NONE"endapp.saveapps=Apps.order("
我是Google云的新手,我正在尝试对其进行首次部署。我的第一个部署是RubyonRails项目。我基本上是在关注thisguideinthegoogleclouddocumentation.唯一的区别是我使用的是我自己的项目,而不是他们提供的“helloworld”项目。这是我的app.yaml文件runtime:customvm:trueentrypoint:bundleexecrackup-p8080-Eproductionconfig.ruresources:cpu:0.5memory_gb:1.3disk_size_gb:10当我转到我的项目目录并运行gcloudprevie
如果我使用ruby版本2.5.1和Rails版本2.3.18会怎样?我有基于rails2.3.18和ruby1.9.2p320构建的rails应用程序,我只想升级ruby的版本,而不是rails,这可能吗?我必须面对哪些挑战? 最佳答案 GitHub维护apublicfork它有针对旧Rails版本的分支,有各种变化,它们一直在运行。有一段时间,他们在较新的Ruby版本上运行较旧的Rails版本,而不是最初支持的版本,因此您可能会发现一些关于需要向后移植的有用提示。不过,他们现在已经有几年没有使用2.3了,所以充其量只能让更
我安装了ruby版本管理器,并将RVM安装的ruby实现设置为默认值,这样'哪个ruby'显示'~/.rvm/ruby-1.8.6-p383/bin/ruby'但是当我在emacs中打开inf-ruby缓冲区时,它使用安装在/usr/bin中的ruby。有没有办法让emacs像shell一样尊重ruby的路径?谢谢! 最佳答案 我创建了一个emacs扩展来将rvm集成到emacs中。如果您有兴趣,可以在这里获取:http://github.com/senny/rvm.el
当我在我的Rails应用程序根目录中运行rakedoc:app时,API文档是使用/doc/README_FOR_APP作为主页生成的。我想向该文件添加.rdoc扩展名,以便它在GitHub上正确呈现。更好的是,我想将它移动到应用程序根目录(/README.rdoc)。有没有办法通过修改包含的rake/rdoctask任务在我的Rakefile中执行此操作?是否有某个地方可以查找可以修改的主页文件的名称?还是我必须编写一个新的Rake任务?额外的问题:Rails应用程序的两个单独文件/README和/doc/README_FOR_APP背后的逻辑是什么?为什么不只有一个?
有人知道在发布新版本的Ruby和Rails时收到电子邮件的方法吗?他们有邮件列表,RubyonRails有一个推特,但我不想听到那些随之而来的喧嚣,我只想知道什么时候发布新版本,尤其是那些有安全修复的版本。 最佳答案 从therailsblog获取提要.http://weblog.rubyonrails.org/feed/atom.xml 关于ruby-on-rails-如何在发布新的Ruby或Rails版本时收到通知?,我们在StackOverflow上找到一个类似的问题:
在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList()Obt
我正在使用Postgres.app在OSX(10.8.3)上。我已经修改了我的PATH,以便应用程序的bin文件夹位于所有其他文件夹之前。Rammy:~phrogz$whichpg_config/Applications/Postgres.app/Contents/MacOS/bin/pg_config我已经安装了rvm并且可以毫无错误地安装pggem,但是当我需要它时我得到一个错误:Rammy:~phrogz$gem-v1.8.25Rammy:~phrogz$geminstallpgFetching:pg-0.15.1.gem(100%)Buildingnativeextension