关于SCSS
uview-plus依赖SCSS,您必须要安装此插件,否则无法正常运行。
- 如果您的项目是由
HBuilder X
创建的,相信已经安装scss插件,如果没有,请在HX菜单的 工具->插件安装中找到"scss/sass编译"插件进行安装, 如不生效,重启HX即可 - 如果您的项目是由
vue-cli
创建的,请通过以下命令安装对sass(scss)的支持,如果已安装,请略过。 - 上面是官网的描述,意思就是你用
HBuilder X创建的项目的话你就去看一下有没有安装这个,
这个插件只需要安装一次,安装之后后面再创建的项目里面都会被配置到里面。 - 没有的话用npm安装就行了,注意版本号,高版本的有的不适用,建议适用低点的版本
// 安装sass
npm i sass@1.63.2 -D// 安装sass-loader
npm i sass-loader@10.4.1 -D
#准备工作
在进行配置之前,请确保您已经根据安装中的步骤对uview-plus进行了下载安装,如果没有,请先下载安装。
这个uview-plus适用npm安装也行,用uni_modules的方式安装也行,建议适用uni_modules的方式
在插件市场找到uview的插件
将其导入到对应的项目,导入成功之后在项目的uni_modules里面可以看到这个就是导入成功了
#配置步骤
#引入uview-plus主JS库
在项目根目录中的main.js
中,引入并使用uview-plus的JS库,注意这两行要放在const app = createSSRApp(App)
之后。
// main.js
import uviewPlus from '@/uni_modules/uview-plus'// #ifdef VUE3
import { createSSRApp } from 'vue'
export function createApp() {const app = createSSRApp(App)app.use(uviewPlus)return {app}
}
// #endif
#在引入uview-plus的全局SCSS主题文件
在项目根目录的uni.scss
中引入此文件。
/* uni.scss */
@import '@/uni_modules/uview-plus/theme.scss';
#引入uview-plus基础样式
注意!
在App.vue
中首行的位置引入,注意给style标签加入lang="scss"属性
<style lang="scss">/* 注意要写在第一行,同时给style标签加入lang="scss"属性 */@import "@/uni_modules/uview-plus/index.scss";
</style>
#配置manifest
在项目的manifest.json中增加mergeVirtualHostAttributes配置
"mp-weixin" : {"appid" : "",..."mergeVirtualHostAttributes" : true
},
"mp-toutiao" : {"appid" : "",..."mergeVirtualHostAttributes" : true
}
#安装依赖库
一定要记得安装依赖库,要不然会报很多找不到文件的错误,我就是没有安装这两个依赖库导致搞了半天。
npm i dayjs
npm i clipboard
#配置easycom组件模式
此配置需要在项目根目录的pages.json
中进行。
温馨提示
- uni-app为了调试性能的原因,修改
easycom
规则不会实时生效,配置完后,您需要重启HX或者重新编译项目才能正常使用uview-plus的功能。 - 请确保您的
pages.json
中只有一个easycom
字段,否则请自行合并多个引入规则。
uview-plus3.x配置
// pages.json
{"easycom": {"autoscan": true,// 注意一定要放在custom里,否则无效,https://ask.dcloud.net.cn/question/131175"custom": {"^u--(.*)": "@/uni_modules/uview-plus/components/u-$1/u-$1.vue","^up-(.*)": "@/uni_modules/uview-plus/components/u-$1/u-$1.vue","^u-([^-].*)": "@/uni_modules/uview-plus/components/u-$1/u-$1.vue"}},// 此为本身已有的内容"pages": [// ......]
}
uview-plus4.x配置(尚未发布)
// pages.json
{"easycom": {"autoscan": true,// 注意一定要放在custom里,否则无效,https://ask.dcloud.net.cn/question/131175"custom": {"^up-(.*)": "@/uni_modules/uview-plus/components/up-$1/up-$1.vue","^u-().*)": "@/uni_modules/uview-plus/components/up-$1/up-$1.vue"}},// 此为本身已有的内容"pages": [// ......]
}
#typescript支持
在tsconfig.json中参考如下配置增加"uni-modules/uview-plus/types"
{"compilerOptions": {"sourceMap": true,"baseUrl": ".","paths": {"@/*": ["./src/*"]},"lib": ["esnext", "dom"],"types": ["@dcloudio/types","uni-modules/uview-plus/types"]},"include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"]
}