国产chinesehdxxxx野外,国产av无码专区亚洲av琪琪,播放男人添女人下边视频,成人国产精品一区二区免费看,chinese丰满人妻videos

Taro 項目模板

2021-09-23 21:16 更新

1.3.9 開始支持

一直以來,在使用 Taro CLI 的 taro init 命令創(chuàng)建項目時,CLI 會提供若干內(nèi)置模板給開發(fā)者選擇。但是很多團隊都有自己獨特的業(yè)務場景,需要使用和維護的模板也不盡一致,因此從 1.3.9 開始我們把項目模板打包成一個能力賦予給開發(fā)者。

1.3.9 對 CLI 的模板功能做了以下修改:

  1. CLI 只保留最基礎的 default 模板,其它模板被移除。
  2. CLI 會從 CLI 全局配置中讀取模版源配置項,然后從模板源拉取模板供開發(fā)者選擇。
  3. 開發(fā)者可以通過修改模板源來使用自己的模板。

模板源

模板源為 CLI 配置項的 templateSource 字段,可以使用 taro config 命令對其進行操作。

默認模版源

默認模板源為 taro-project-templates 倉庫,原本內(nèi)置的模板都被抽離到此處。

配置模板源

模板源支持兩種格式,git 模板源url 模板源。

git 模板源

  • GitHub - github:owner/name
  • GitLab - gitlab:owner/name
  • Direct - direct:url
  1. # 初始化項目時可以使用 --clone 選項指定拉取遠程模板時使用git clone
  2. taro init --clone

url 模板源

指向某 zip 包的 url。

編寫模板

模板組織格式

模板目錄組織支持兩種,分別是單模板模式模板組模式。

單模板模式

git

倉庫根目錄存在 package.json。

模板名為倉庫名。

zip 包

zip 包解壓出單文件夾,文件夾根目錄包含 package.json。

模板名為 zip 包解壓出的文件夾名。

template

模板組模式

git

默認模板源,倉庫根目錄下存放著若干模板。

模板名對應根目錄下所有文件夾名。

zip 包

zip 包解壓出單文件夾,文件夾內(nèi)包含若干模板。

模板名對應文件夾內(nèi)所有文件夾名。

templates

靜態(tài)模板

靜態(tài)模板表示不帶邏輯的模板,CLI 會遍歷整個模板文件夾,把文件一一拷貝到目標位置。

動態(tài)模板

很多情況下需要為模板加入一些邏輯,從而根據(jù)不同的環(huán)境生成不同的模板內(nèi)容。

開發(fā)者可以在模板根目錄加入 template_creator.js 文件,文件對外 exports 包含 handler 與 basePageFiles 字段的對象:

  1. function createWhenTs (params) {
  2. return params.typescript ? true : false
  3. }
  4. const handler = {
  5. '/global.d.ts': createWhenTs,
  6. '/tsconfig.json': createWhenTs,
  7. '/src/pages/index/index.jsx' ({ pageName }) {
  8. return { setPageName: `/src/pages/${pageName}/${pageName}.jsx` }
  9. },
  10. '/src/pages/index/index.css' ({ pageName}) {
  11. return { setPageName: `/src/pages/${pageName}/${pageName}.css` }
  12. }
  13. }
  14. const basePageFiles = [
  15. '/src/pages/index/index.jsx',
  16. '/src/pages/index/index.css'
  17. ]
  18. module.exports = {
  19. handler,
  20. basePageFiles
  21. }

模板語言

請使用 ejs 作為模板語言,各模板文件都將接收到全局模板參數(shù)。

默認全局模板參數(shù)(模板中可直接使用的變量)
變量 類型 說明
projectName string 項目名
description string 項目描述
version string Taro CLI 版本
date string 模板創(chuàng)建時間戳
css ‘none’ or ‘sass’ or ‘stylus’ or ‘less’ 樣式預處理工具
cssExt string 樣式文件后綴
typescript boolean 是否使用 TS
pageName string taro create 時傳入的頁面名稱,默認 ‘index’
template string 模板名稱
例子
  1. // index.js
  2. <%if (typescript) {-%>
  3. import Taro, { Component, Config } from '@tarojs/taro'
  4. <%} else { -%>
  5. import Taro, { Component } from '@tarojs/taro'
  6. <%}-%>
  7. import { View, Text } from '@tarojs/components'
  8. import './<%= pageName %>.<%= cssExt %>'

handler 字段

handler 用于控制是否生成某文件,或給文件傳入特定參數(shù)。

handler: object
屬性 類型 value
文件路徑 function 處理函數(shù)

文件路徑以 “/” 開頭,代表模板文件夾根目錄

處理函數(shù)

params: object

屬性 類型 說明
projectName string 項目名
description string 項目描述
version string Taro CLI 版本
date string 模板創(chuàng)建時間戳
css ‘none’ or ‘sass’ or ‘stylus’ or ‘less’ 樣式預處理工具
typescript boolean 是否使用 TS
pageName string 頁面名稱
template string 模板名稱
templatePath string 模板路徑
projectPath string 目標路徑
period ‘createApp’ or ‘createPage’ taro init 創(chuàng)建項目或 taro create 創(chuàng)建頁面

return: boolean/object

返回值說明

取值 說明
true 創(chuàng)建文件
false 不創(chuàng)建文件
object 創(chuàng)建文件,返回的 object 的字段會被合并到全局模板參數(shù)中。

若返回值為 object,其中某些屬性有特殊作用:

屬性 類型 說明
setPageName string 將替換當前文件的輸出路徑
changeExt boolean 是否自動替換文件后綴
例子

當用戶選擇了使用 typescript 時,才生成 global.d.tstsconfig.json 文件。

  1. // template_creator.js
  2. function createWhenTs (params) {
  3. return params.typescript ? true : false
  4. }
  5. const handler = {
  6. '/global.d.ts': createWhenTs,
  7. '/tsconfig.json': createWhenTs
  8. }
  9. module.exports = { handler }

basePageFiles 字段

basePageFiles 告訴 CLI,當用戶使用 taro create 命令創(chuàng)建頁面時,創(chuàng)建以下文件。

例子

結(jié)合 handler 字段,創(chuàng)建新頁面。

當用戶使用命令 taro create --page=detail 時,會創(chuàng)建 /src/pages/detail/detail.jsx/src/pages/detail/detail.css 兩個文件。

  1. // template_creator.js
  2. const handler = {
  3. '/src/pages/index/index.jsx' ({ pageName }) {
  4. return { setPageName: `/src/pages/${pageName}/${pageName}.jsx` }
  5. },
  6. '/src/pages/index/index.css' ({ pageName}) {
  7. return { setPageName: `/src/pages/${pageName}/${pageName}.css` }
  8. }
  9. }
  10. const basePageFiles = [
  11. '/src/pages/index/index.jsx',
  12. '/src/pages/index/index.css'
  13. ]
  14. module.exports = {
  15. handler,
  16. basePageFiles
  17. }


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號