多种 Taro 项目打包目录探究
2023-11-12 12:50:53
众所周知,Taro项目可以生成RN、H5和各种平台小程序,打包的命令位于package.json文件的scripts节点中,如下所示。
"scripts": {
"build": "taro build",
"build:h5": "taro build --type h5",
"build:weapp": "taro build --type weapp",
"build:alipay": "taro build --type alipay",
"build:swan": "taro build --type swan",
"build:tt": "taro build --type tt",
"build:quickapp": "taro build --type quickapp"
}
当我们执行打包命令就可以生成不同平台的资源文件:
rn:build/rn
h5:build/h5
weapp:build/weapp
alipay:build/alipay
swan:build/swan
tt:build/tt
quickapp:build/quickapp
不过,使用上面 Taro 的打包命令生成的资源文件是分散在不同的目录中的,这给我们的项目管理带来了不便。因此,我们需要一种方法将这些资源文件生成到一个统一的目录中。
1. 使用build命令生成统一入口
Taro 提供了build命令来生成统一入口,使用方法如下:
taro build --type weapp --entry src/app.js
上面命令将会把生成的小程序资源文件生成到一个统一的目录中,目录名为dist/weapp
。
2. 使用npm run命令生成统一入口
我们还可以使用npm run命令来生成统一入口,使用方法如下:
npm run build:weapp -- --entry src/app.js
上面命令将会把生成的小程序资源文件生成到一个统一的目录中,目录名为dist/weapp
。
3. 使用scripts命令生成统一入口
我们还可以使用scripts命令来生成统一入口,使用方法如下:
"scripts": {
"build:weapp": "taro build --type weapp --entry src/app.js"
}
上面命令将会把生成的小程序资源文件生成到一个统一的目录中,目录名为dist/weapp
。
4. Taro项目打包目录结构
Taro项目打包后,不同平台的资源文件分别生成在不同的目录中。
rn:build/rn
h5:build/h5
weapp:build/weapp
alipay:build/alipay
swan:build/swan
tt:build/tt
quickapp:build/quickapp
每个目录中都包含了该平台所需要的资源文件。例如,rn目录中包含了RN项目所需的资源文件,h5目录中包含了H5项目所需的资源文件,weapp目录中包含了微信小程序所需的资源文件,alipay目录中包含了支付宝小程序所需的资源文件,swan目录中包含了百度小程序所需的资源文件,tt目录中包含了今日头条小程序所需的资源文件,quickapp目录中包含了快应用所需的资源文件。
5. 不同平台的生成目录
不同平台的生成目录如下:
- RN:build/rn
- H5:build/h5
- 微信小程序:build/weapp
- 支付宝小程序:build/alipay
- 百度小程序:build/swan
- 今日头条小程序:build/tt
- 快应用:build/quickapp
6. 小结
Taro项目打包后,不同平台的资源文件分别生成在不同的目录中。我们可以使用build命令、npm run命令或scripts命令来生成统一入口。 Taro项目打包目录结构如下图所示:
taro
├── build
├── rn
├── index.js
├── index.css
├── index.html
├── h5
├── index.js
├── index.css
├── index.html
├── weapp
├── app.js
├── app.json
├── pages
├── index
├── index.js
├── index.wxml
├── index.wxss
├── alipay
├── app.js
├── app.json
├── pages
├── index
├── index.js
├── index.axml
├── index.acss
├── swan
├── app.js
├── app.json
├── pages
├── index
├── index.js
├── index.swan
├── index.css
├── tt
├── app.js
├── app.json
├── pages
├── index
├── index.js
├── index.ttml
├── index.css
├── quickapp
├── app.js
├── app.json
├── pages
├── index
├── index.js
├── index.ux