taro 的项目结构_使用Taro开发项目总结

为啥使用Taro

个人又比较喜欢 React,Taro 的社区活跃度和版本迭代速度可喜,所以毫无意外选择了 Taro。

Taro 起步

所以闲话少叙,我们说回 Taro……

Taro 的开发体个人又比较喜欢 React,Taro 的社区活跃度和版本迭代速度可喜,所以毫无意外选择了 Taro。你有过 React 的开发经验,可以毫无困难地顺滑上手;如果没有,直接看 Taro 的官方文档 来入门也是没有问题的。

从安装到建立一个新项目使用——

$ npm install -g @tarojs/cli

$ taro init myApp

$ cd myApp

$ npm install

# 开发

$ npm run dev:weapp

# 编译

$ npm run build:weapp

复制代码复制代码

这里的开发和编译指令中的weapp

换成h5

/swan

/alipay

/tt

/rn

后,即可在对应的其他端编译运行。多端的代码逻辑可以不同,详情请看跨平台开发。

项目结构

官方有一篇基于 Redux 的项目最佳实践文章:《Taro深度开发实践》。

官方推荐的项目结构——

├── config 配置目录

| ├── dev.js 开发时配置

| ├── index.js 默认配置

| └── prod.js 打包时配置

├── src 源码目录

| ├── components 公共组件目录

| ├── pages 页面文件目录

| | ├── index index 页面目录

| | | ├── banner 页面 index 私有组件

| | | ├── index.js index 页面逻辑

| | | └── index.css index 页面样式

| ├── utils 公共方法库

| ├── app.css 项目总通用样式

| └── app.js 项目入口文件

└── package.json

复制代码复制代码

我在项目中并没有用到 Redux / MobX,项目「发展壮大」后的结构也比较简单明了——

├── dist 编译结果目录

├── config 配置目录

| ├── dev.js 开发时配置

| ├── index.js 默认配置

| └── prod.js 打包时配置

├── src 源码目录

| ├── assets 公共资源目录(内含图标等资源)

| ├── components 公共组件目录

| | └── Btn 公共组件 Btn 目录

| | ├── Btn.js 公共组件 Btn 逻辑

| | └── Btn.scss 公共组件 Btn 样式

| ├── pages 页面文件目录

| | └── index index 页面目录

| | ├── components index 页面的独有组件目录

| | | └── Banner index 页面的 Banner 组件目录

| | | ├── Banner.js index 页面的 Banner 组件逻辑

| | | └── Banner.scss index 页面的 Banner 组件样式

| | ├── index.js index 页面逻辑

| | └── index.scss index 页面样式

| ├── subpackages 分包目录(项目过大时建议分包)

| | └── profile 一个叫 profile 的分包目录

| | └── pages 该分包的页面文件目录

| | └── index 该分包的页面 index 目录(其下结构与主包的页面文件一致)

| ├── utils 项目辅助类 工具 目录

| | └── api.js 比如辅助类 api 等

| ├── app.css 项目总通用样式

| └── app.js 项目入口文件

└── package.json

复制代码复制代码

什……这也叫「简单明了」吗? (゚д゚≡゚д゚)

这是我个人比较喜欢的组织方式。我的项目已经不算小了,总计近 30 个页面,使用上面这种方式维护,确实感觉还挺省心舒服的。当然你也可以按照你的喜好组织文件~

编译配置文件

编译配置存放于项目根目录下config

目录中,包含三个文件

index.js

dev.js

prod.js

下面说一些使用案例和某些坑的解决方案——

路径别名

在项目中不断import

相对路径的后果就是,不能方便直观地明白目录结构;如果要迁移改动一个目录,IDE 又没有很准确的重构功能的话,需要手动更改每一个import

的路径,非常难受。

所以我们想把:

import A from '../../componnets/A'

复制代码复制代码

变成

import A from '@/componnets/A'

复制代码复制代码

这种引用。

方式如下:

/* config/index.js */

const path = require('path')

alias: {

'@/components': path.resolve(__dirname, '..', 'src/components'),

'@/utils': path.resolve(__dirname, '..', 'src/utils'),

},

复制代码复制代码

在代码中判断环境

/* config/dev.js */

env: {

NODE_ENV: '"development"', // JSON.stringify('development')

},

复制代码复制代码

/* config/prod.js */

env: {

NODE_ENV: '"production"', // JSON.stringify('development')

},

复制代码复制代码<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值