小程序开放平台

文档中心
概览
框架开发
代码编辑
开发辅助
AI 助手(Beta)
下载

框架开发

开发
>
开发工具
>
框架开发
>
更新时间:2024-12-07 17:50:46

小程序的开发除去常见的原生小程序语法的开发模式,还可以应用层框架开发,用类现代框架 (vue/react) 的语法去开发小程序,提升开发体验和解决跨平台的问题。本文主要讲解如何用常见的小程序框架开发小红书小程序。

Taro

Taro 官网

第一步:安装开发工具

安装 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

第四步:安装并配置插件 plugin-platform-xhs

目前小红书插件已经发布了新版本,可以安装和试用,若有问题可以及时通过 issue提报 进行反馈

安装 @tarojs/plugin-platform-xhs

npm install @tarojs/plugin-platform-xhs@latest --save-dev

配置插件

在config/index.js中

// 或者
const config = {
  plugins: [
    '@tarojs/plugin-platform-xhs'
  ]
}

第五步:创建xhs配置文件

项目根目录,创建project.xhs.json,可以直接从project.config.json进行拷贝后改名

第六步:构建目标代码

在 package.json 的

scripts
字段下添加以下脚本

"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

uni-app 官网,支持使用 Vue3 和 Vue2 两种版本进行开发,下面将分别介绍

Uniapp Vue3

第一步:拉取模板项目

参考 Uniapp 官方文档

npx degit dcloudio/uni-preset-vue#vite-alpha my-vue3-project

第二步:版本替换和 patch

由于小红书版本的插件迭代和 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 目录,进行调试、预览、上传

Uniapp Vue2

第一步:安装开发工具

npm install -g @vue/cli@4

第二步:初始化项目

vue create -p dcloudio/uni-preset-vue uni-app-xhs

建议选择

hello uni-app
项目模板

项目中的 manifest.json,如果其中的 vueVersion 写了 3,会报错,需要改成 2

第三步:构建目标代码

npm run dev:mp-xhs
# or
npm run build:mp-xhs

第四步:开发者工具打开项目

使用开发者工具打开生成的 dist 目录,进行调试、预览、上传


uni-app FAQ

Q:uniapp 小红书插件好像不是最新的?

A:uni-mp-xhs插件的发版依赖uniapp官方进行review和发版节奏,可能不是最新的,目前vue3版本的插件,需要在依赖安装后,通过手动替换 / patch 的方式,解决已有bug,需要替换的两个目录分别是:uni-mp-xhs/distuni-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