当前位置:首页 > 科技  > 软件

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

来源: 责编: 时间:2024-01-22 17:20:53 281观看
导读前言为什么需要这样一个框架,以及这个框架带来的好处是什么?从字面意思上理解:该框架可以用来同时管理多个小程序,并且可以抽离公用组件或业务逻辑供各个小程序使用。当你工作中面临这种同时维护多个小程序的业务场景时,可

前言

8DD28资讯网——每日最新资讯28at.com

为什么需要这样一个框架,以及这个框架带来的好处是什么?8DD28资讯网——每日最新资讯28at.com

从字面意思上理解:该框架可以用来同时管理多个小程序,并且可以抽离公用组件或业务逻辑供各个小程序使用。当你工作中面临这种同时维护多个小程序的业务场景时,可以考虑使用这种模式。灵感来自webpack的多项目打包构建8DD28资讯网——每日最新资讯28at.com

起步

首先你得先安装好taro脚手架,然后基于该脚手架生成一个taro项目8DD28资讯网——每日最新资讯28at.com

初始化taro项目

taro init miniApp

8DD28资讯网——每日最新资讯28at.com

这是我选择的初始化配置,你当然也可以选择其它模版,只要编译工具选择webpack就可以,下面的步骤基本相同8DD28资讯网——每日最新资讯28at.com

打开项目安装依赖

pnpm install

8DD28资讯网——每日最新资讯28at.com

这样一个基本的taro项目就生成好了,但这样只是生成了一个小程序,那我们如果有许多个小程序是不是还要按上面这些步骤继续生成,当然不需要,这样不仅费时间,而且难以维护。8DD28资讯网——每日最新资讯28at.com

下面我们就来把这个框架改造成支持同时管理多个小程序。8DD28资讯网——每日最新资讯28at.com

改造(支持多小程序)

此时的项目结构是这样的:8DD28资讯网——每日最新资讯28at.com

8DD28资讯网——每日最新资讯28at.com

  • config下面是一些小程序以及webpack的配置
  • src下面是我们小程序的项目代码
  • project.config.json是当前小程序配置文件
  • ...

改造目录

在src目录下新增目录:apps、common8DD28资讯网——每日最新资讯28at.com

  • apps:小程序目录,存放各个小程序的代码
  • common:公用目录,存放公用组件及业务逻辑代码

apps

这里每个小程序对应一个文件夹,里面存放对应小程序的代码8DD28资讯网——每日最新资讯28at.com

这里需要把根目录下的project.config.json放到小程序目录下,因为每个小程序都需要自己的配置文件8DD28资讯网——每日最新资讯28at.com

比如:nanjiu、nanjiu_notebook两个小程序8DD28资讯网——每日最新资讯28at.com

8DD28资讯网——每日最新资讯28at.com

common

这里主要是存放公用代码:组件、业务、请求8DD28资讯网——每日最新资讯28at.com

8DD28资讯网——每日最新资讯28at.com

修改配置

config/index.js

import path from 'path'const app = process.env.APPconst 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,因为要支持多小程序,那么这里就不能固定写死了,我们可以在启动时通过传参来区分当前启动或打包哪个小程序。8DD28资讯网——每日最新资讯28at.com

自定义构建脚本

在项目根目录新建文件夹build存放构建脚本8DD28资讯网——每日最新资讯28at.com

// cli.jsconst 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(` 
                

本文链接:http://www.28at.com/showinfo-26-66187-0.html基于taro搭建小程序多项目框架

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: OPPO Reno 11 系列如何反超旗舰?

下一篇: 五个可提高效率的 JavaScript 实用程序库

标签:
  • 热门焦点
  • K60至尊版狂暴引擎2.0加持:超177万跑分斩获性能第一

    Redmi的后性能时代战略发布会今天下午如期举办,在本次发布会上,Redmi公布了多项关于和联发科的深度合作,以及新机K60 Ultra在软件和硬件方面的特性,例如:“K60 至尊版,双芯旗舰
  • 直屏旗舰来了 iQOO 12和K70 Pro同台竞技

    旗舰机基本上使用的都是双曲面屏幕,这就让很多喜欢直屏的爱好者在苦等一款直屏旗舰,这次,你们等到了。据博主数码闲聊站带来的最新爆料称,Redmi下代旗舰K70 Pro和iQOO 12两款手
  • 把LangChain跑起来的三个方法

    使用LangChain开发LLM应用时,需要机器进行GLM部署,好多同学第一步就被劝退了,那么如何绕过这个步骤先学习LLM模型的应用,对Langchain进行快速上手?本片讲解3个把LangChain跑起来
  • 三万字盘点 Spring 九大核心基础功能

    大家好,我是三友~~今天来跟大家聊一聊Spring的9大核心基础功能。话不多说,先上目录:图片友情提示,本文过长,建议收藏,嘿嘿嘿!一、资源管理资源管理是Spring的一个核心的基础功能,不
  • 每天一道面试题-CPU伪共享

    前言:了不起:又到了每天一到面试题的时候了!学弟,最近学习的怎么样啊 了不起学弟:最近学习的还不错,每天都在学习,每天都在进步! 了不起:那你最近学习的什么呢? 了不起学弟:最近在学习C
  • 2023年,我眼中的字节跳动

    此时此刻(2023年7月),字节跳动从未上市,也从未公布过任何官方的上市计划;但是这并不妨碍它成为中国最受关注的互联网公司之一。从2016-17年的抖音强势崛起,到2018年的“头腾
  • SN570 NVMe SSD固态硬盘 价格与性能兼具

    SN570 NVMe SSD固态硬盘是西部数据发布的最新一代WD Blue系列的固态硬盘,不仅闪存技术更为精进,性能也得到了进一步的跃升。WD Blue SN570 NVMe SSD的包装外
  • “买真退假” 这种“羊毛”不能薅

    □ 法治日报 记者 王春   □ 本报通讯员 胡佳丽  2020年初,还在上大学的小东加入了一个大学生兼职QQ群。群主“七王”在群里介绍一些刷单赚
  • Meta盲目扩张致超万人被裁,重金押注元宇宙而前景未明

    图片来源:图虫创意日前,Meta创始人兼CEO 马克·扎克伯发布公开信,宣布Meta计划裁员超11000人,占其员工总数13%。他公开承认了自己的预判失误:“不仅
Top