Taro 項(xiàng)目基于 node,請確保已具備較新的 node 環(huán)境(>=8.0.0),推薦使用 node 版本管理工具 nvm 來管理 node,這樣不僅可以很方便地切換 node 版本,而且全局安裝時(shí)候也不用加 sudo 了。
首先,你需要使用 npm 或者 yarn 全局安裝@tarojs/cli,或者直接使用npx:
# 使用 npm 安裝 CLI
$ npm install -g @tarojs/cli
# OR 使用 yarn 安裝 CLI
$ yarn global add @tarojs/cli
# OR 安裝了 cnpm,使用 cnpm 安裝 CLI
$ cnpm install -g @tarojs/cli
值得一提的是,如果安裝過程出現(xiàn)sass相關(guān)的安裝錯(cuò)誤,請?jiān)诎惭bmirror-config-china后重試。
$ npm install -g mirror-config-china
使用命令創(chuàng)建模板項(xiàng)目
$ taro init myApp
npm 5.2+ 也可在不全局安裝的情況下使用 npx 創(chuàng)建模板項(xiàng)目
$ npx @tarojs/cli init myApp
在創(chuàng)建完項(xiàng)目之后,Taro 會(huì)默認(rèn)開始安裝項(xiàng)目所需要的依賴,安裝使用的工具按照 yarn>cnpm>npm 順序進(jìn)行檢測,一般來說,依賴安裝會(huì)比較順利,但某些情況下可能會(huì)安裝失敗,這時(shí)候你可以在項(xiàng)目目錄下自己使用安裝命令進(jìn)行安裝
# 使用 yarn 安裝依賴
$ yarn
# OR 使用 cnpm 安裝依賴
$ cnpm install
# OR 使用 npm 安裝依賴
$ npm install
進(jìn)入項(xiàng)目目錄開始開發(fā),目前已經(jīng)支持 微信/百度/支付寶/字節(jié)跳動(dòng)/QQ/京東小程序、H5、快應(yīng)用以及 ReactNative 等端的代碼轉(zhuǎn)換,針對不同端的啟動(dòng)以及預(yù)覽、打包方式并不一致
Taro 需要運(yùn)行不同的命令,將 Taro 代碼編譯成不同端的代碼,然后在對應(yīng)的開發(fā)工具中查看效果。
在使用 Taro 進(jìn)行多端開發(fā)中,請確保 Taro CLI 的版本與你項(xiàng)目的依賴版本一致,否則可能會(huì)出現(xiàn)編譯錯(cuò)誤或者運(yùn)行時(shí)錯(cuò)誤。
如果你所使用的 Taro CLI 版本為 1.3.9,而項(xiàng)目里使用的依賴版本為 1.3.20,則有可能會(huì)出現(xiàn)問題,查詢方法請參見本章 "環(huán)境及依賴檢測" 章節(jié),這時(shí)請將你的 Taro CLI 版本更新至項(xiàng)目依賴版本號(hào)相同的版本,如果還是出現(xiàn)問題,請向我們提出 Issue。
選擇微信小程序模式,需要自行下載并打開微信開發(fā)者工具,然后選擇項(xiàng)目根目錄進(jìn)行預(yù)覽。
微信小程序編譯預(yù)覽及打包(去掉 --watch 將不會(huì)監(jiān)聽文件修改,并會(huì)對代碼進(jìn)行壓縮打包)
# yarn
$ yarn dev:weapp
$ yarn build:weapp
# npm script
$ npm run dev:weapp
$ npm run build:weapp
# 僅限全局安裝
$ taro build --type weapp --watch
$ taro build --type weapp
# npx 用戶也可以使用
$ npx taro build --type weapp --watch
$ npx taro build --type weapp
選擇百度小程序模式,需要自行下載并打開百度開發(fā)者工具,然后在項(xiàng)目編譯完后選擇項(xiàng)目根目錄下 dist 目錄進(jìn)行預(yù)覽。
百度小程序編譯預(yù)覽及打包(去掉 --watch 將不會(huì)監(jiān)聽文件修改,并會(huì)對代碼進(jìn)行壓縮打包)
# yarn
$ yarn dev:swan
$ yarn build:swan
# npm script
$ npm run dev:swan
$ npm run build:swan
# 僅限全局安裝
$ taro build --type swan --watch
$ taro build --type swan
# npx 用戶也可以使用
$ npx taro build --type swan --watch
$ npx taro build --type swan
選擇支付寶小程序模式,需要自行下載并打開支付寶小程序開發(fā)者工具,然后在項(xiàng)目編譯完后選擇項(xiàng)目根目錄下 dist 目錄進(jìn)行預(yù)覽。
支付寶小程序編譯預(yù)覽及打包(去掉 --watch 將不會(huì)監(jiān)聽文件修改,并會(huì)對代碼進(jìn)行壓縮打包)
# yarn
$ yarn dev:alipay
$ yarn build:alipay
# npm script
$ npm run dev:alipay
$ npm run build:alipay
# 僅限全局安裝
$ taro build --type alipay --watch
$ taro build --type alipay
# npx 用戶也可以使用
$ npx taro build --type alipay --watch
$ npx taro build --type alipay
選擇字節(jié)跳動(dòng)小程序模式,需要自行下載并打開字節(jié)跳動(dòng)小程序開發(fā)者工具,然后在項(xiàng)目編譯完后選擇項(xiàng)目根目錄下 dist 目錄進(jìn)行預(yù)覽。
字節(jié)跳動(dòng)小程序編譯預(yù)覽及打包(去掉 --watch 將不會(huì)監(jiān)聽文件修改,并會(huì)對代碼進(jìn)行壓縮打包)
# yarn
$ yarn dev:tt
$ yarn build:tt
# npm script
$ npm run dev:tt
$ npm run build:tt
# 僅限全局安裝
$ taro build --type tt --watch
$ taro build --type tt
# npx 用戶也可以使用
$ npx taro build --type tt --watch
$ npx taro build --type tt
選擇 QQ 小程序模式,需要自行下載并打開QQ 小程序開發(fā)者工具,然后在項(xiàng)目編譯完后選擇項(xiàng)目根目錄下 dist 目錄進(jìn)行預(yù)覽。
QQ 小程序編譯預(yù)覽及打包(去掉 --watch 將不會(huì)監(jiān)聽文件修改,并會(huì)對代碼進(jìn)行壓縮打包)
# yarn
$ yarn dev:qq
$ yarn build:qq
# npm script
$ npm run dev:qq
$ npm run build:qq
# 僅限全局安裝
$ taro build --type qq --watch
$ taro build --type qq
# npx 用戶也可以使用
$ npx taro build --type qq --watch
$ npx taro build --type qq
選擇京東小程序模式,需要自行下載并打開京東小程序開發(fā)者工具(可郵件聯(lián)系 mp@jd.com 獲取內(nèi)測版本),然后在項(xiàng)目編譯完后選擇項(xiàng)目根目錄下 dist 目錄進(jìn)行預(yù)覽。
京東小程序編譯預(yù)覽及打包(去掉 --watch 將不會(huì)監(jiān)聽文件修改,并會(huì)對代碼進(jìn)行壓縮打包)
# yarn
$ yarn dev:jd
$ yarn build:jd
# npm script
$ npm run dev:jd
$ npm run build:jd
# 僅限全局安裝
$ taro build --type jd --watch
$ taro build --type jd
# npx 用戶也可以使用
$ npx taro build --type jd --watch
$ npx taro build --type jd
選擇快應(yīng)用模式,需要自行下載并打開快應(yīng)用開發(fā)者工具,然后在項(xiàng)目編譯完后,在開發(fā)者工具中選擇「打開文件夾」選擇項(xiàng)目根目錄下 dist 目錄,點(diǎn)擊左邊的預(yù)覽圖標(biāo)(那個(gè)眼睛圖標(biāo))進(jìn)行預(yù)覽。
快應(yīng)用編譯預(yù)覽及打包(去掉 --watch 將不會(huì)監(jiān)聽文件修改,并會(huì)對代碼進(jìn)行壓縮打包)
# yarn
$ yarn dev:quickapp
$ yarn build:quickapp
# npm script
$ npm run dev:quickapp
$ npm run build:quickapp
# 僅限全局安裝
$ taro build --type quickapp --watch
$ taro build --type quickapp
# npx 用戶也可以使用
$ npx taro build --type quickapp --watch
$ npx taro build --type quickapp
快應(yīng)用開發(fā)者工具如何使用?點(diǎn)擊了解
H5 模式,無需特定的開發(fā)者工具,在執(zhí)行完下述命令之后即可通過瀏覽器進(jìn)行預(yù)覽
H5 預(yù)覽項(xiàng)目
# yarn
$ yarn dev:h5
# npm script
$ npm run dev:h5
# 僅限全局安裝
$ taro build --type h5 --watch
# npx 用戶也可以使用
$ npx taro build --type h5 --watch
H5 打包項(xiàng)目
# yarn
$ yarn build:h5
# npm script
$ npm run build:h5
# 僅限全局安裝
$ taro build --type h5
# npx 用戶也可以使用
$ npx taro build --type h5
React Native 端運(yùn)行需執(zhí)行如下命令,React Native 端相關(guān)的運(yùn)行說明請參見 React Native 教程
# yarn
$ yarn dev:rn
# npm script
$ npm run dev:rn
# 僅限全局安裝
$ taro build --type rn --watch
# npx 用戶也可以使用
$ npx taro build --type rn --watch
Note:React Native 端和其他端樣式兼容性差異較大,如果需要兼容 React Native 端,建議 React Native 端和其他端同步開發(fā)。
Note:如果要支持 React Native 端,必須采用 Flex 布局,并且樣式選擇器僅支持類選擇器,且不 支持 組合器 Combinators and groups of selectors。
以下選擇器的寫法都是不支持的,在樣式轉(zhuǎn)換時(shí)會(huì)自動(dòng)忽略。
.button.button_theme_islands {
font-style: bold;
}
img + p {
font-style: bold;
}
p ~ span {
color: red;
}
div > span {
background-color: DodgerBlue;
}
div span {
background-color: DodgerBlue;
}
樣式上 H5 最為靈活,小程序次之,RN 最弱,統(tǒng)一多端樣式即是對齊短板,也就是要以 RN 的約束來管理樣式,同時(shí)兼顧小程序的限制,核心可以用三點(diǎn)來概括:
RN 中 View 標(biāo)簽?zāi)J(rèn)主軸方向是 column,如果不將其他端改成與 RN 一致,就需要在所有用到 display: flex 的地方都顯式聲明主軸方向。
$ taro --help
Taro 提供了更新命令來更新 CLI 工具自身和項(xiàng)目中 Taro 相關(guān)的依賴
更新 Taro CLI 工具
# taro
$ taro update self [version]
# npm
npm i -g @tarojs/cli@[version]
# yarn
yarn global add @tarojs/cli@[version]
更新項(xiàng)目中 Taro 相關(guān)的依賴
$ taro update project [version]
version 為選填,如:1.x.x/latest 等,將會(huì)直接更新到指定版本。 若不填寫 version,將會(huì)更新到當(dāng)前項(xiàng)目 Taro 依賴的 主版本(major)的最新穩(wěn)定版,如當(dāng)前主版本沒有穩(wěn)定版本,則會(huì)更新到 latest 指定的版本。
如命令更新失敗,需要在 package.json 文件手動(dòng)更新依賴版本,然后重新安裝依賴。
Taro 提供了命令來一鍵檢測 Taro 環(huán)境及依賴的版本等信息,方便大家查看項(xiàng)目的環(huán)境及依賴,排查環(huán)境問題。在提 issue 的時(shí)候,請附上 taro info 打印的信息,幫助開發(fā)人員快速定位問題。
$ taro info
???? Taro v1.2.0-beta.15
Taro CLI 1.2.0-beta.15 environment info:
System:
OS: macOS High Sierra 10.13.5
Shell: 5.3 - /bin/zsh
Binaries:
Node: 8.11.2 - /usr/local/bin/node
Yarn: 1.8.0 - /usr/local/bin/yarn
npm: 5.6.0 - /usr/local/bin/npm
npmPackages:
@tarojs/components: ^1.2.0-beta.3 => 1.2.0-beta.3
@tarojs/plugin-babel: ^1.2.0-beta.3 => 1.2.0-beta.3
@tarojs/plugin-csso: ^1.2.0-beta.3 => 1.2.0-beta.3
@tarojs/plugin-sass: ^1.2.0-beta.4 => 1.2.0-beta.4
@tarojs/plugin-uglifyjs: ^1.2.0-beta.3 => 1.2.0-beta.3
@tarojs/rn-runner: ^1.2.0-beta.4 => 1.2.0-beta.4
@tarojs/router: ^1.2.0-beta.3 => 1.2.0-beta.3
@tarojs/taro: ^1.2.0-beta.3 => 1.2.0-beta.3
@tarojs/taro-alipay: ^1.2.0-beta.3 => 1.2.0-beta.3
@tarojs/taro-h5: ^1.2.0-beta.3 => 1.2.0-beta.3
@tarojs/taro-swan: ^1.2.0-beta.3 => 1.2.0-beta.3
@tarojs/taro-weapp: ^1.2.0-beta.3 => 1.2.0-beta.3
@tarojs/webpack-runner: ^1.2.0-beta.3 => 1.2.0-beta.3
eslint-config-taro: ^1.2.0-beta.3 => 1.2.0-beta.3
eslint-plugin-taro: ^1.2.0-beta.3 => 1.2.0-beta.3
Taro Doctor 就像一個(gè)醫(yī)生一樣,可以診斷項(xiàng)目的依賴、設(shè)置、結(jié)構(gòu),以及代碼的規(guī)范是否存在問題,并嘗試給出解決方案。
但和真正的醫(yī)生不一樣,Taro Doctor 不需要排隊(duì)掛號(hào),也不用花錢。你只需要在終端運(yùn)行命令:taro doctor,就像圖里一樣:
Taro create --name [頁面名稱] 能夠在當(dāng)前項(xiàng)目的 pages 目錄下快速生成新的頁面文件,并填充基礎(chǔ)代碼,是一個(gè)提高開發(fā)效率的利器。
自 1.3.9 開始支持
1.3.9 開始 Taro 會(huì)在用戶根目錄下創(chuàng)建 .taro 文件夾,其中 .taro/index.json 用于存放 CLI 相關(guān)配置。
開發(fā)者可以使用 taro config 命令對配置項(xiàng)進(jìn)行一系列操作:
# 查看用法
$ taro config --help
# 設(shè)置配置項(xiàng)<key>的值為<value>
$ taro config set <key> <value>
# 讀取配置項(xiàng)<key>
$ taro config get <key>
# 刪除配置項(xiàng)<key>
$ taro config delete <key>
# 打印所有配置項(xiàng)
$ taro config list [--json]
需要安裝某個(gè)固定版本,或者回到某個(gè)版本,例如我們要安裝 1.3.9 , 則如下:
# 使用 npm 安裝 CLI
$ npm install -g @tarojs/cli@1.3.9
# OR 使用 yarn 安裝 CLI
$ yarn global add @tarojs/cli@1.3.9
# OR 安裝了 cnpm,使用 cnpm 安裝 CLI
$ cnpm install -g @tarojs/cli@1.3.9
更多建議: