精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

基于taro搭建小程序多項目框架

開發
為什么需要這樣一個框架,以及這個框架帶來的好處是什么?

前言

為什么需要這樣一個框架,以及這個框架帶來的好處是什么?

從字面意思上理解:該框架可以用來同時管理多個小程序,并且可以抽離公用組件或業務邏輯供各個小程序使用。當你工作中面臨這種同時維護多個小程序的業務場景時,可以考慮使用這種模式。靈感來自webpack的多項目打包構建

起步

首先你得先安裝好taro腳手架,然后基于該腳手架生成一個taro項目

初始化taro項目

taro init miniApp

這是我選擇的初始化配置,你當然也可以選擇其它模版,只要編譯工具選擇webpack就可以,下面的步驟基本相同

打開項目安裝依賴

pnpm install

這樣一個基本的taro項目就生成好了,但這樣只是生成了一個小程序,那我們如果有許多個小程序是不是還要按上面這些步驟繼續生成,當然不需要,這樣不僅費時間,而且難以維護。

下面我們就來把這個框架改造成支持同時管理多個小程序。

改造(支持多小程序)

此時的項目結構是這樣的:

  • config下面是一些小程序以及webpack的配置
  • src下面是我們小程序的項目代碼
  • project.config.json是當前小程序配置文件
  • ...

改造目錄

在src目錄下新增目錄:apps、common

  • apps:小程序目錄,存放各個小程序的代碼
  • common:公用目錄,存放公用組件及業務邏輯代碼

apps

這里每個小程序對應一個文件夾,里面存放對應小程序的代碼

這里需要把根目錄下的project.config.json放到小程序目錄下,因為每個小程序都需要自己的配置文件

比如:nanjiu、nanjiu_notebook兩個小程序

common

這里主要是存放公用代碼:組件、業務、請求

修改配置

config/index.js

import path from 'path'
const app = process.env.APP

const config = {
  projectName: 'mini_app',
  date: '2024-1-21',
  designWidth: 750,
  deviceRatio: {
    640: 2.34 / 2,
    750: 1,
    828: 1.81 / 2
  },
  sourceRoot: `src/apps/${app}`, // 項目源碼目錄
  outputRoot: `${app.toUpperCase()}APP`,  // 打包產物目錄
  alias: {
    '@/common': path.resolve(__dirname, '..', 'src/common'), // 別名配置
  },
// ....

module.exports = function (merge) {
  if (process.env.NODE_ENV === 'development') {
    return merge({}, config, require('./dev'))
  }
  return merge({}, config, require('./prod'))
}

這里需要注意的是sourceRoot,因為要支持多小程序,那么這里就不能固定寫死了,我們可以在啟動時通過傳參來區分當前啟動或打包哪個小程序。

自定義構建腳本

在項目根目錄新建文件夾build存放構建腳本

// cli.js
const shell = require('shelljs')
const fs = require('fs')
const path = require('path')
const inquirer = require('inquirer')


const action = process.argv[2]
let app =  process.argv[3]
const runType = action == 'dev' ? '啟動': '打包'

function start() {
  // 處理配置文件
  process.env.APP = app
  console.log(`????????????正在${runType}小程序:${app}`)
  let cmd = ''
  if(action == 'dev') {

    cmd = `taro build --type weapp --watch --app ${app}`

  } else {

    cmd = `taro build --type weapp --app ${app}`

  }

  const child = shell.exec(cmd, {async:true})
  child.stdout.on('data', function() {
    // console.log(data)
  })
}
// ...

start()

配置腳本命令

//package.json

// ...

"scripts": {
  "start": "node build/cli.js dev",
  "build": "node build/cli.js build",
}

驗證

所有工作完成后,可以來看看這個框架能不能滿足我們的需求

命令執行成功,項目根目錄下會生成對應的小程序代碼

再把該產物使用小程序開發者工具看是否能跑起來

這邊能夠跑起來,就說明打包沒有問題了,同樣可以驗證其它的小程序

優化構建腳本

多小程序架構搭建完,有同事反饋啟動報錯,我心想:不能吧,我自己都驗證過了,從報錯信息上看他應該是啟動時沒輸入需要啟動的小程序,直接pnpm start了,這樣的話就不知道應該啟動哪個小程序了。其實啟動命令已經在項目文檔上寫了,可能是沒注意看。

那就只能優化優化,盡量避免這種情況,這里主要的邏輯是如果沒有輸入指定的的小程序,通過inquirer開啟交互式命令,讓他選擇要啟動哪個小程序。

// cli.js
const shell = require('shelljs')
const fs = require('fs')
const path = require('path')
const inquirer = require('inquirer')

const action = process.argv[2]
let app =  process.argv[3]
const runType = action == 'dev' ? '啟動': '打包'

if(!app) {
  openInquirer()
  return
}

// 未輸入項目名稱則開啟交互命令行
function openInquirer() {
  const projectList = fs.readdirSync(path.resolve(__dirname, '../src/apps'))
  // 過濾隱藏文件
  projectList.forEach((item, index) => {
    if(item.indexOf('.') == 0) {
      projectList.splice(index, 1)
    }
  })
  const promptList = [
    {
      type: 'list',
      message: '??請選擇啟動的小程序:',
      name: 'pro',
      choices: [...projectList],
    },
  ]
  inquirer.prompt(promptList).then((answers) => {
    app = answers.pro
    start()
  })
}
function start() {
  // 處理配置文件
  process.env.APP = app
  console.log(`????????????正在${runType}小程序:${app}`)
  let cmd = ''
  if(action == 'dev') {

    cmd = `taro build --type weapp --watch --app ${app}`

  } else {

    cmd = `taro build --type weapp --app ${app}`

  }

  const child = shell.exec(cmd, {async:true})
  child.stdout.on('data', function() {
    // console.log(data)
  })
}

start()

這樣就大功告成了!!!

責任編輯:華軒 來源: 前端南玖
相關推薦

2023-03-19 11:47:57

Taro小程序持續集

2024-05-31 09:06:14

2023-02-25 10:00:19

開源項目小程序

2022-08-12 08:38:08

攜程小程序Taro跨端解決方案

2023-07-07 14:12:52

攜程開發

2011-09-05 14:42:01

PhoneGap框架

2009-11-12 16:17:13

.NET

2012-12-03 10:40:25

項目框架搭建asp.net

2016-09-27 17:29:23

騰訊云小程序微信

2021-08-16 11:25:41

Python云服務云辦公

2023-10-12 07:40:54

Minium自動化框架

2023-06-21 08:05:39

開源UI庫互聯網

2020-12-21 06:20:34

內存優化跨端

2016-09-30 09:22:55

2023-09-05 23:29:49

前端Vue

2016-11-04 10:47:27

微信小程序

2016-12-13 10:07:50

JAVA框架搭建

2010-05-25 10:08:29

SVN權限管理

2023-06-29 07:37:26

點贊
收藏

51CTO技術棧公眾號

亚洲看片网站| 国产精品久久久久aaaa九色| 免费高清视频在线观看| 久操av在线| 久久久美女毛片| 国产精品视频一区二区高潮| 日韩一级片大全| 鲁大师精品99久久久| 91福利精品视频| 免费看污污视频| 日本人妖在线| 国产一本一道久久香蕉| 欧美孕妇性xx| www.色小姐com| 啄木系列成人av电影| 91精品久久久久久久久99蜜臂 | 欧美先锋影音| 国产亚洲精品va在线观看| 久久久九九九热| 神马久久资源| 亚洲线精品一区二区三区八戒| 日本一区二区免费看| 性中国xxx极品hd| 热久久国产精品| 国内自拍欧美激情| www.xx日本| 女人av一区| 精品久久久久久综合日本欧美| 亚洲精品怡红院| rebdb初裸写真在线观看| 国产精品久久久久三级| 久久综合毛片| 亚洲国产精品二区| 久久66热re国产| 国产第一区电影| 亚洲男人的天堂在线视频| 欧美va天堂在线| 色偷偷av一区二区三区乱| 黄瓜视频污在线观看| 99久热这里只有精品视频免费观看| 欧美色成人综合| 北条麻妃在线一区| 中文在线免费视频| 五月天亚洲婷婷| 国产九色porny| 人人超在线公开视频| 亚洲天堂精品在线观看| 亚洲精品国产一区| jyzzz在线观看视频| 久久久久青草大香线综合精品| 国产精品香蕉视屏| 精品国产999久久久免费| 精品一区二区精品| 国产拍精品一二三| 国产又色又爽又黄又免费| 日本成人在线一区| 国产精品日韩久久久久| 中文永久免费观看| 免费久久99精品国产| 国产精品96久久久久久又黄又硬| 少妇太紧太爽又黄又硬又爽| 日韩视频不卡| 欧美一级黑人aaaaaaa做受| 在线观看亚洲天堂| 久久成人亚洲| 国产精品久久久久久久久免费看| 亚洲精品一区二三区| 日韩黄色免费电影| 国产主播精品在线| 99热这里只有精品在线观看| 国产一区二区三区av电影| 亚洲伊人第一页| 亚洲美女性生活| 91美女视频网站| 欧美三日本三级少妇三99| 国产九色在线| 亚洲欧洲日韩女同| 免费看日本黄色| 老牛影视精品| 欧洲精品在线观看| 久久人人爽人人片| 久久综合五月婷婷| 一级做a爰片久久毛片美女图片| 日本污视频网站| 一区二区电影在线观看| 久久久久久国产精品| 九九热在线免费观看| 日本在线观看不卡视频| 91在线精品视频| 少妇荡乳情欲办公室456视频| 91尤物视频在线观看| 亚洲欧美国产一区二区| caoporn免费在线| 亚洲一区二区高清| 亚洲精品乱码久久久久久自慰| 欧美亚洲黄色| 亚洲第一网站免费视频| 日本人亚洲人jjzzjjz| 女主播福利一区| 57pao国产精品一区| 亚洲一级av毛片| 不卡的av电影| 亚洲一区三区| av2020不卡| 欧美日韩一本到| 中文字幕视频观看| 日韩理论在线| 91精品国产91久久久| 国产一区二区女内射| av亚洲精华国产精华精华| 亚洲不卡一卡2卡三卡4卡5卡精品| 欧美激情黑人| 狠狠久久五月精品中文字幕| 亚洲一区二区偷拍| 国产探花一区二区| 欧美黑人视频一区| 一卡二卡在线视频| 久久久久九九视频| 欧美人成在线观看| 91麻豆精品| 一本色道久久综合狠狠躁篇怎么玩| 麻豆疯狂做受xxxx高潮视频| 日本特黄久久久高潮| 国产欧美日韩综合一区在线观看 | 久久久精品视频在线观看| 国产三级av片| 成人性生交大片免费看视频在线| 亚洲午夜精品一区二区| 超碰超碰人人人人精品| 亚洲二区中文字幕| 久久久精品视频免费观看| 麻豆一区二区在线| 日韩av一区二区三区美女毛片| 黄色羞羞视频在线观看| 日韩一级大片在线观看| 午夜激情视频在线播放| 日本不卡视频一二三区| 欧美精品成人一区二区在线观看| 国产桃色电影在线播放| 日韩视频免费直播| 婷婷激情四射网| 蜜臀91精品一区二区三区 | 欧美激情第3页| 欧美一区二区三区高清视频| 日韩美女视频免费在线观看| 无码国产伦一区二区三区视频| 一级女性全黄久久生活片免费| 久久久久久久久久毛片| 日韩在线看片| 国产三级精品网站| 欧美黑人激情| 91.成人天堂一区| 亚洲怡红院在线观看| 久久狠狠亚洲综合| 精品一区二区成人免费视频| 日本一区二区中文字幕| 久久综合色影院| www.av网站| 亚洲一区视频在线观看视频| 老司机av网站| 日韩一级精品| 欧美日韩一区二区视频在线 | 日韩欧美精品免费在线| www.色天使| 久久资源在线| 亚洲精品在线视频观看| 白嫩亚洲一区二区三区| 欧美精品免费看| 黄色小视频免费观看| 精品日韩美女的视频高清 | 专区另类欧美日韩| 日本成人在线免费| 国产精品尤物| 婷婷亚洲婷婷综合色香五月| 亚洲精品一区二区在线播放∴| 久久天天躁狠狠躁夜夜躁2014| www香蕉视频| 精品久久久免费| 精品人妻一区二区三区四区| 久久99精品久久久久婷婷| 无码人妻aⅴ一区二区三区日本| 亚洲精品v亚洲精品v日韩精品| 97久久久免费福利网址| 国产三级在线看| 欧美一区二区在线观看| 日韩精品久久久久久久| 国产亚洲精品超碰| 激情文学亚洲色图| 国产日韩一区| 正在播放亚洲| 久久国产精品免费精品3p| 国产精品99免视看9| 国产黄网站在线观看| 日韩久久免费视频| 国产精品无码在线播放| 精品美女国产在线| 日本高清不卡免费| 久久网站热最新地址| 中文av字幕在线观看| 一区二区黄色| 国产精品一二三在线观看| 日韩av黄色在线| 亚洲一区久久久| 惠美惠精品网| 九九热最新视频//这里只有精品| 麻豆app在线观看| 精品久久久影院| 在线观看免费高清视频| 懂色av一区二区三区| 91杏吧porn蝌蚪| 国产婷婷色一区二区三区| 午夜性福利视频| 九九视频精品免费| 精品免费国产一区二区| 国产一区二区三区四区三区四 | 亚洲成a人片在线不卡一二三区| 大吊一区二区三区| 91免费观看在线| 日本wwwxx| 激情综合色综合久久| 少妇高清精品毛片在线视频 | 亚洲在线视频播放| 欧美性高跟鞋xxxxhd| 黄色一级免费视频| 一区精品在线播放| 精品无码在线观看| 久久亚洲一区二区三区明星换脸| 亚洲精品一二三四| 九色综合狠狠综合久久| 黄色在线视频网| 日韩黄色一级片| 久久精品视频91| 久久不射2019中文字幕| 日本www在线视频| 激情婷婷久久| 在线观看17c| 亚洲精品成人| 天堂av在线中文| 欧美.日韩.国产.一区.二区| 一区二区三区四区国产| 日韩精品久久| 午夜午夜精品一区二区三区文| 精品一区免费| 日本一区免费看| 免费成人高清在线视频theav| 精品欧美一区二区在线观看视频| 超碰一区二区三区| 国产伦一区二区三区色一情| 亚洲精品在线播放| 国产二区不卡| 国产成人精品福利| 久久久久久欧美精品色一二三四| 国内自拍欧美| 精品视频在线观看| 久久久伦理片| 免费国产一区二区| 欧美伦理在线视频| 亚洲午夜精品久久久久久浪潮| 久久婷婷蜜乳一本欲蜜臀| 亚洲欧洲日韩综合二区| 国产精品88久久久久久| 久久视频免费在线| 精品91在线| 北条麻妃69av| 视频一区二区三区在线| 超碰在线播放91| 激情综合色播激情啊| 中文在线字幕观看| 91麻豆精品一区二区三区| 国产精成人品免费观看| 国产精品大尺度| 国产a免费视频| 精品久久久在线观看| 天天操天天干天天摸| 欧美另类高清zo欧美| 国产黄色片网站| 亚洲国产欧美久久| 国产美女视频一区二区三区| 色婷婷久久一区二区| 超碰在线资源| 国产成人精品在线视频| 国内精品视频| 久久国产一区| 国产精品成久久久久| 搞av.com| 蜜桃一区二区三区四区| 男人添女人荫蒂国产| 久久久99精品免费观看| 亚洲精品卡一卡二| 欧美色xxxx| 97caocao| 日韩av综合网站| 成人在线观看网站| 高清一区二区三区四区五区| 少妇在线看www| 亚洲精品免费网站| 亚洲系列另类av| 国内精品国产三级国产99| 国产精品嫩草99av在线| 999久久久精品视频| 97se亚洲国产综合自在线不卡 | 亚洲午夜一区二区三区| 懂色av中文字幕| 欧美成人a∨高清免费观看| 男人的天堂在线| 欧美激情一区二区三区高清视频| 三上悠亚激情av一区二区三区| 51国偷自产一区二区三区的来源| 美女毛片一区二区三区四区| 99久久99久久精品| 免费高清视频精品| www.自拍偷拍| 亚洲大片精品永久免费| 91tv国产成人福利| 亚洲欧美另类自拍| a级片免费在线观看| 成人午夜一级二级三级| 欧美精品一区二区三区精品| 少妇人妻大乳在线视频| 国产精品18久久久| 美国黄色特级片| 91福利国产成人精品照片| 日韩一区二区三区在线观看视频| 日韩性xxxx爱| 丁香久久综合| 欧美最大成人综合网| 国产欧美成人| 白嫩情侣偷拍呻吟刺激| 亚洲欧美日韩精品久久久久| 中文天堂在线资源| 国产一区二区激情| 蜜臀久久精品| 国产一区二区三区四区五区加勒比| 亚洲精品成人| 国产5g成人5g天天爽| 亚洲欧洲www| 一卡二卡在线观看| xvideos国产精品| 主播大秀视频在线观看一区二区| 就去色蜜桃综合| 一本色道精品久久一区二区三区 | 国产亚洲综合视频| av中文一区二区三区| 国产精品99re| 亚洲第一色中文字幕| 91桃色在线观看| 激情久久av| 亚洲精品女人| 成人无码www在线看免费| 亚洲高清一区二区三区| 欧美一级一区二区三区| 国内偷自视频区视频综合| 精品综合久久88少妇激情| 日韩一级性生活片| 97精品久久久久中文字幕| 欧美一级视频免费观看| 精品亚洲男同gayvideo网站| 最近在线中文字幕| 欧美日韩视频在线一区二区观看视频| 免费在线成人| 国产精品久久久视频| 欧美日韩一区二区三区免费看| 日本在线天堂| 亚洲自拍偷拍视频| 精品电影一区| 亚洲国产第一区| 欧洲一区二区三区免费视频| 日本在线观看www| 亚洲综合在线做性| 一区免费视频| 亚欧洲乱码视频| 欧美视频中文字幕| 50度灰在线| 久久久亚洲综合网站| 蜜桃视频一区二区三区在线观看| 91ts人妖另类精品系列| 精品国产精品网麻豆系列| 日产福利视频在线观看| 亚洲视频在线二区| 国产成人超碰人人澡人人澡| 日韩乱码一区二区| 中文在线不卡视频| 欧美日本三级| 日韩av黄色网址| 亚洲天堂2014| 天天摸夜夜添狠狠添婷婷| 国产人妖伪娘一区91| 极品av少妇一区二区| www..com.cn蕾丝视频在线观看免费版 | 国产一级视频在线观看| 亚洲精品一区中文字幕乱码| 日韩国产一二三区| 男人日女人逼逼| 日韩一区在线免费观看| 污视频软件在线观看| 国产日本欧美一区二区三区| av不卡免费看| 国产黄在线免费观看| 亚洲欧美日韩中文视频| 高清国产一区二区三区四区五区|