小程序的开发除去常见的原生小程序语法的开发模式,还可以应用层框架开发,用类现代框架 (vue/react) 的语法去开发小程序,提升开发体验和解决跨平台的问题。本文主要讲解如何用常见的小程序框架开发小红书小程序。
安装 Taro 开发工具 @tarojs/cli; 推荐使用v3.6.35版本 使用 npm 或者 yarn 的方式都可以获取,也可以直接使用 npx(在 npm 5.2+ 以上)
npm install -g @tarojs/cli@3.6.35 # or yarn global add @tarojs/cli@3.6.35
使用命令创建模板项目
taro init xhs-miniapp
进入项目目录,安装依赖
npm install # or yarn
目前小红书插件已经发布了新版本,可以安装和试用,若有问题可以及时通过 issue提报 进行反馈
安装 @tarojs/plugin-platform-xhs
npm install @tarojs/plugin-platform-xhs@latest --save-dev
配置插件
在config/index.js中
// 或者 const config = { plugins: [ '@tarojs/plugin-platform-xhs' ] }
项目根目录,创建project.xhs.json,可以直接从project.config.json进行拷贝后改名
在 package.json 的
"scripts": { "build:xhs": "taro build --type xhs", "dev:xhs": "npm run build:xhs -- --watch" },
执行脚本
npm run dev:xhs # or npm run build:xhs
使用开发者工具打开生成的 dist 目录,进行调试、预览、上传
uni-app 官网,支持使用 Vue3 和 Vue2 两种版本进行开发,下面将分别介绍
参考 Uniapp 官方文档
npx degit dcloudio/uni-preset-vue#vite-alpha my-vue3-project
由于小红书版本的插件迭代和 bugfix 中,并未及时能够跟版官方的最新版本,所以建议使用以下命令进行版本的替换。小红书侧会尽快推动 Uniapp 作插件代码的 Review、合并、和发版
替换版本号:
sed -i '' 's/"3.0.0-alpha-4[^"]*"/"3.0.0-alpha-3090220231010001"/g' package.json
patch node_modules:
npm run dev:mp-xhs # or npm run build:mp-xhs
使用开发者工具打开生成的 dist 目录,进行调试、预览、上传
npm install -g @vue/cli@4
vue create -p dcloudio/uni-preset-vue uni-app-xhs
建议选择
项目中的 manifest.json,如果其中的 vueVersion 写了 3,会报错,需要改成 2
npm run dev:mp-xhs # or npm run build:mp-xhs
使用开发者工具打开生成的 dist 目录,进行调试、预览、上传
Q:uniapp 小红书插件好像不是最新的?
A:uni-mp-xhs插件的发版依赖uniapp官方进行review和发版节奏,可能不是最新的,目前vue3版本的插件,需要在依赖安装后,通过手动替换 / patch 的方式,解决已有bug,需要替换的两个目录分别是:uni-mp-xhs/dist 和 uni-mp-vue/dist。另外可以参考下 hello-uniapp小红书版 的代码
Q:无法运行,代码无法执行,样式报错等问题
A:请确保安装了node.js环境,同时在uniapp的目录里安装node_modules依赖(如果有package.json的情况下)。此外,还要注意样式插件等的安装,如sass-loader,如果出现样式解析报错,请根据报错信息在uniapp安装相应的解析loader
Q:如何在uniapp打包编译至小红书平台?
A:目前uniapp顶部选项卡并不支持一键编译打包到小红书ide,需要用户手动在当前目录的终端执行命令,"dev:mp-xhs": "cross-env NODE_ENV=development UNI_PLATFORM=mp-xhs vue-cli-service uni-build --watch", 即运行npm run dev:mp-xhs,该条命令可以在小红书uniapp demo模版里的package.json找到
Q:在编译打包至小红书平台的过程中出现报错
A:请不要在 vue2 项目开启 vueVersion为 3,请确保目前的uniapp使用的是vue2或vue3版本,同时确保运行的目录和命令正确。uni-app vue3版本已经发布了release版本,可以通过以下命令体验:
npx degit dcloudio/uni-preset-vue#vite-alpha uniapp-vue-xhs
Q:uniapp编译后,如何在小红书ide运行?
A:uniapp打包后,一般会有一个dist目录,dist/dev/mp-xhs,请在小红书ide打开这个目录,确保你在小红书ide运行的目录有app.json文件
Q:为什么tabbar设置tab徽标和显示红点无用?
A:目前小红书暂不支持这两项能力
Q:为什么xhs.setTabBarStyle设置颜色有时会失效?
A:目前在设置颜色时请输入完整的颜色值如#ffffff,而不是#fff
Q:为什么move-area设置横向或者纵向移动时无法拖动?
A:请设置movable-view的x,y属性,这两个属性目前是必填属性,没有默认值,如果不设置就会导致无法拖动的问题
Q:部分uni组件异常有问题无法使用?
A:uni-data-checkbox、uni-data-picker、uni-easyinput这些组件功能会有异常,请暂时不要使用这些组件
Q:为什么使用canvas组件相关api会报错?
A:当前虽然小红书平台支持canvas,但是uniapp编译到小红书平台时没有支持改项api,导致canvas的api为undefined