react+taro打包到不同小程序

前言:

taro是和uniapp一样的夸端工具,主要基于react来实现,这里说一说如何来打包到不同品牌的小程序。

具体区别:

针对不同小程序,主要就是打包命令不同

目标平台 打包命令 输出目录 说明
微信小程序 npm run build:weapp dist/weapp 需安装 @tarojs/plugin-platform-weapp 插件
支付宝小程序 npm run build:alipay dist/alipay
百度小程序 npm run build:swan dist/swan
字节跳动小程序 npm run build:tt dist/tt
QQ 小程序 npm run build:qq dist/qq
京东小程序 npm run build:jd dist/jd
H5 npm run build:h5 dist/h5
React Native npm run build:rn build/rn

具体打包:

Taro 通过 --type 参数指定目标平台,配合 config/index.js 中的配置和环境变量

1、config/index.js 里的配置

javascript 复制代码
module.exports = {
  // 项目名称
  projectName: 'myApp',
  // 输出根目录,使用环境变量区分平台
  outputRoot: `dist/${process.env.TARO_ENV}`,
  // 微信小程序特定配置
  weapp: {
    postcss: {
      autoprefixer: { enable: true },
      pxtransform: { enable: true }
    }
  },
  // H5 特定配置
  h5: {
    publicPath: '/',
    staticDirectory: 'static',
    // 其他H5 webpack配置...
  }
}

2、如果多环境打包,比如分dev,test等,可以用cross-env

复制代码
npm install cross-env

// config/index.js
module.exports = function (merge) {
  // 基础配置
  const baseConfig = {
    // ... 你的基础配置
  };
  // 根据 process.env.NODE_ENV 加载不同环境的配置并合并
  if (process.env.NODE_ENV === 'dev') {
    return merge({}, baseConfig, require('./dev'));
  }
  if (process.env.NODE_ENV === 'test') {
    return merge({}, baseConfig, require('./test'));
  }
  return merge({}, baseConfig, require('./prod'));
}

pack.json文件中得命令也要改变

javascript 复制代码
"scripts": {
  "build:weapp:dev": "cross-env NODE_ENV=dev taro build --type weapp",
  "build:weapp:test": "cross-env NODE_ENV=test taro build --type weapp",
  "build:weapp:prod": "cross-env NODE_ENV=prod taro build --type weapp",
  "dev:weapp": "cross-env NODE_ENV=dev taro build --type weapp --watch",
  // 其他平台和环境类似...
}
相关推荐
小码哥0682 小时前
从三甲综合医院到连锁诊所:医院管理小程序的场景化突围逻辑(陪诊系统-陪诊APP-陪诊小程序)
小程序·医院管理系统·陪诊小程序·陪诊系统·陪诊app
空中湖3 小时前
Spring AI Agent 编排:ReAct 模式 + 多 Agent 协作实战
人工智能·spring·react.js
2501_916007473 小时前
iOS和macOS应用程序性能分析和优化工具使用综合指南
android·macos·ios·小程序·uni-app·iphone·webview
正在走向自律4 小时前
用豆包Seed Evolving打造全功能【AI智能记账】小程序,开源可落地
人工智能·小程序·开源·智能记账
小林ixn14 小时前
从 ??= 到 onKeyDown:一个 React 组件的“自我修养”
前端·javascript·react.js
半个落月1 天前
用 React 搭一个 WebGPU 模型加载页:从状态驱动到可复用进度条
前端·react.js
无人生还1 天前
第 1 篇:从 Vue3 到 React 的思维转变
前端·vue.js·react.js
breeze jiang1 天前
从原生事件到 React 组件化:用状态驱动模型加载进度 UI
前端·react.js·ui
名字还没想好☜1 天前
React setState 连续调用「丢更新」排查:批量更新与函数式更新
前端·javascript·react.js·react·usestate