创建第一个 Taro 项目
本文将带你动手创建第一个 Taro 项目。从使用 CLI 初始化项目,到项目结构解析,再到运行和预览,这一节会让你完成从“0”到“可运行”的第一步。
初始化项目
确保你已经全局安装了 @tarojs/cli
,然后在命令行中执行以下命令:
taro init my-taro-app
my-taro-app
是你项目的文件夹名称,你可以自定义为任何你喜欢的名字。
接下来 CLI 会引导你进行一系列配置,例如:
- 项目名称
- 项目介绍
- 使用的框架(React / PReact / Vue3 / Solid)
- 是否使用 TypeScript
- CSS 预处理器(Sass / Less / Stylus)
- 包管理工具(yarn / pnpm / npm / cnpm)
- 编译工具(Webpack5 / Vite)
- 模板源(Gitee / GitHub / CLI 内置默认模板 / 自定义 / 社区优质模板源)
- 状态管理方案(MobX / Redux / Recoil / 不使用)
- 是否启用 ESLint / Prettier 等代码规范工具
建议选择:
- 框架:React
- 是否使用 TypeScript:是
- CSS 预处理器:Sass
- 状态管理:MobX(简单易用,适合初学者)
配置完成后,Taro CLI 会自动生成项目结构,并帮你安装依赖。
👽 Taro v4.0.12
Taro 即将创建一个新项目!
Need help? Go and open issue: https://tls.jd.com/taro-issue-helper
? 请输入项目介绍 我的第一个Taro项目
? 请选择框架 React
? 是否需要使用 TypeScript ? Yes
? 是否需要编译为 ES5 ? No
? 请选择 CSS 预处理器(Sass/Less/Stylus) Sass
? 请选择包管理工具 npm
? 请选择编译工具 Webpack5
? 请选择模板源 Gitee(最快)
✔ 拉取远程模板仓库成功!
...
✔ 初始化 git 成功
执行安装项目依赖 npm install, 需要一会儿...
...
✔ 安装项目依赖成功
创建项目 my-taro-app 成功!
请进入项目目录 my-taro-app 开始工作吧!😝
项目结构解析
初始化完成后,你会看到如下目录结构:
my-taro-app/
├── config/ # 各平台编译配置
├── src/ # 项目源码目录
│ ├── pages/ # 页面文件
│ └── app.tsx # 应用入口
├── project.config.json # 微信小程序项目配置
├── package.json # 项目信息及依赖
└── ...
其中 src/pages
是你放置页面组件的地方,Taro 默认会创建一个首页页面 index
,你可以修改或添加更多页面。
运行项目
进入项目目录,执行以下命令:
cd my-taro-app
npm run dev:weapp
这个命令会启动开发服务器,并将代码编译为微信小程序格式。Taro 会自动在 dist
目录下生成小程序代码。
你可以使用 微信开发者工具 打开 dist
目录,即可进行预览和调试。
你也可以构建其他平台,例如:
npm run dev:h5 # 运行 H5 版本
npm run dev:alipay # 运行支付宝小程序版本
npm run dev:tt # 运行抖音小程序版本
如果你使用的是 pnpm 或 yarn,请将命令中的 npm run
替换为对应的命令,如 pnpm dev:weapp
。
开启压缩构建
当你运行 npm run dev:weapp
时,Taro 默认处于开发环境(NODE_ENV=development
)。此时生成的文件不会进行压缩处理,目的是为了更快地编译、更方便地调试(例如更清晰的错误提示、保留源码注释等)。
但开发环境下生成的 JS、CSS 文件体积比较大,如果你在真机上预览,加载速度可能会比较慢,甚至受限于小程序体积上限。这时候,你可以通过设置 NODE_ENV
为 production
来开启压缩构建,例如:
NODE_ENV=production taro build --type weapp --watch
命令参数说明:
NODE_ENV=production
:设置为生产环境,启用代码压缩、Tree Shaking 等优化。--type weapp
:构建微信小程序。--watch
:持续监听文件改动,自动增量编译。
Windows 用户无法直接使用 NODE_ENV=production
这种写法,你可以使用如下方式:
set NODE_ENV=production && taro build --type weapp --watch
开启缓存功能
每次运行项目时,Taro CLI 都需要将源码编译为目标平台代码,这个过程涉及 Babel 转换、样式处理、模块打包等多个步骤。默认情况下,Taro 不会保存每次编译的中间结果。如果你频繁保存文件或重启开发服务,每次都要“从头开始”编译,浪费时间。
这时候,你可以在项目根目录下的 config/index.ts
中添加如下配置:
cache: {
enable: true
}
这样做的好处是:Taro 会将中间构建结果缓存到本地,之后的编译速度会明显提升,特别是对于大型项目或多页面项目效果更明显。
避免覆盖 dist 目录
Taro 默认将所有平台的构建输出到 dist/
目录下的根路径,这会导致构建其他端时会覆盖 dist/
目录,造成不便。为了解决该问题,你需要设置 outputRoot
参数,配置每个平台独立的输出目录。例如:
const config = {
// 通用配置
sourceRoot: 'src',
outputRoot: 'dist', // 默认输出目录
// 小程序配置
mini: {
outputRoot: 'dist/weapp',
// 其他配置...
},
// H5 配置
h5: {
outputRoot: 'dist/h5',
// 其他配置...
},
// 其他平台配置...
};
在 Taro 新版本中,你还可以通过环境变量动态控制输出目录,这种配置方式会更加简洁。例如:
const config = {
outputRoot: `dist/${process.env.TARO_ENV}`,
// 其他配置...
};
修改首页内容
打开 src/pages/index/index.tsx
,你会看到类似如下的代码:
import { View, Text } from '@tarojs/components'
import './index.scss'
export default function Index() {
return (
<View className="index">
<Text>这是我的第一个 Taro 项目</Text>
</View>
)
}
你可以将其中的文字修改为自己的内容,保存后开发者工具会自动刷新。
添加页面路由
Taro 使用配置式路由。在 src/app.config.ts
中可以看到默认配置:
export default defineAppConfig({
pages: [
'pages/index/index'
],
window: {
navigationBarTitleText: '首页',
backgroundTextStyle: 'light'
}
})
如果你想添加一个新页面,例如 about
,只需在 src/pages
下创建 about/index.tsx
,然后将其路径加到 pages
数组中即可:
pages: [
'pages/index/index',
'pages/about/index'
]
保存后重新编译项目,就可以在开发者工具中看到新页面了。
小结
这一节中,你完成了第一个 Taro 项目的初始化、运行与修改。你不仅了解了项目的基本结构,还学会了添加页面和修改内容。接下来,你将继续学习组件、样式与路由跳转等核心功能,一步步构建自己的多端应用。