# farm-produce-mall-miniapp **Repository Path**: woqiong/farm-produce-mall-miniapp ## Basic Information - **Project Name**: farm-produce-mall-miniapp - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-03-11 - **Last Updated**: 2025-04-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 开发环境 - node v18.18 - yarn # 微信小程序开发打包命令 ``` bash $ yarn dev:weapp $ yarn build:weapp ``` # 快速创建新页面 `Taro create --name [页面名称] --dir [路径] --subpkg [分包路径] ` 能够在当前项目的指定目录下快速生成新的页面文件,并填充基础代码,是一个提高开发效率的利器。taro 会尝试同步修改 app.config.js 配置文件中的 pages 或者 subPackages 字段。 ``` bash # 假设当前当前跟路径为 /project/root。 # 执行下面命令创建主包页面: taro create cart --dir mydir # 那么会在 /project/root/src/pages/mydir 目录下生成新的页面,并且在 app.config.js 中自动补齐 pages 字段。 # 执行下面命令创建分包页面: taro create order --subpkg mysubpages # 那么会在 /project/root/src/mysubpages 目录下生成新的页面,并且在 app.config.js 中自动补齐 subPackages 字段。 ``` # 模式和环境变量 默认情况下, 模式 Taro cli 有 2 个模式,默认情况下 **模式** 的值,取决于 `NODE_ENV` 的值(但是反过来说模式的值无法改变 NODE_ENV 的值)。 - `development` 模式用于开发时 `taro build --type weapp --watch`,它等价于 `taro build --type weapp --watch --mode development` - `production` 模式用于生产时 `taro build --type weapp`, ,它等价于 `taro build --type weapp --mode production` - 只有以 `TARO_APP_` 开头的变量将通过 `webpack.DefinePlugin` 静态地嵌入到客户端侧的代码中。这是为了避免和系统内置环境变量冲突。 - 环境文件加载优先级:.env 在所有的环境中被载入。为一个特定模式准备的环境文件 (例如 .env.production) 将会比一般的环境文件 (例如 .env) 拥有更高的优先级。 - .env 环境文件是通过运行 taro 命令载入的,因此环境文件发生变化,你需要重启服务。 # 多端差异化逻辑 可以使用 `process.env.TARO_ENV` 变量作条件判断来实现。取值为: `weapp / swan / alipay / tt / qq / jd / h5 / rn` **1. 在微信小程序和 H5 端分别引用不同资源** ``` js /** 源码 */ if (process.env.TARO_ENV === 'weapp') { require('path/to/weapp/name') } else if (process.env.TARO_ENV === 'h5') { require('path/to/h5/name') } /** 编译后(微信小程序)*/ if (true) { require('path/to/weapp/name') } /** 编译后(H5)*/ if (true) { require('path/to/h5/name') } ``` **2. 决定不同端要加载的组件** ``` jsx /** 源码(React JSX) */ {process.env.TARO_ENV === 'weapp' && } {process.env.TARO_ENV === 'h5' && } /** 编译后(微信小程序)*/ {true && } /** 编译后(H5)*/ {true && } ``` **不要解构 process.env 来获取环境变量** ``` js // 请直接以完整书写的方式(process.env.TARO_ENV)来进行使用。 // 正确写法 if (process.env.TARO_ENV === 'weapp') { } // 错误写法 const { TARO_ENV = 'weapp' } = process.env if (TARO_ENV === 'weapp') { } ``` # 项目目录结构 ``` bash ├── dist 编译结果目录 | ├── config 项目编译配置目录 | ├── index.js 默认配置 | ├── dev.js 开发环境配置 | └── prod.js 生产环境配置 | ├── src 源码目录 | ├── pages 页面文件目录 | | └── index index 页面目录 | | ├── index.js index 页面逻辑 | | ├── index.css index 页面样式 | | └── index.config.js index 页面配置 | | | ├── app.js 项目入口文件 | ├── app.css 项目总通用样式 | └── app.config.js 项目入口配置 | ├── project.config.json 微信小程序项目配置 project.config.json ├── project.tt.json 抖音小程序项目配置 project.tt.json ├── project.swan.json 百度小程序项目配置 project.swan.json ├── project.qq.json QQ 小程序项目配置 project.qq.json | ├── babel.config.js Babel 配置 ├── tsconfig.json TypeScript 配置 ├── .eslintrc ESLint 配置 | └── package.json ``` # 编译配置 用于配置 Taro 项目的编译行为、修改 Webpack 配置等,详情请参考编译配置和编译配置详情。 ``` bash └── config 项目编译配置目录 ├── index.js 默认配置 ├── dev.js 开发环境配置 └── prod.js 生产环境配置 ```