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

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

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

前言

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

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

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

起步

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

初始化taro项目

taro init miniApp

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

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

打开项目安装依赖

pnpm install

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

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

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

改造(支持多小程序)

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

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

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

改造目录

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

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

apps

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

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

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

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

common

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

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

自定义构建脚本

在项目根目录新建文件夹build存放构建脚本tdL28资讯网——每日最新资讯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 实用程序库

标签:
  • 热门焦点
  • 0糖0卡0脂 旭日森林仙草乌龙茶优惠:15瓶到手29元

    旭日森林无糖仙草乌龙茶510ml*15瓶平时要卖为79.9元,今日下单领取50元优惠券,到手价为29.9元。产品规格:0糖0卡0脂,添加草本仙草汁,清凉爽口,富含茶多酚,保留
  • 28个SpringBoot项目中常用注解,日常开发、求职面试不再懵圈

    前言在使用SpringBoot开发中或者在求职面试中都会使用到很多注解或者问到注解相关的知识。本文主要对一些常用的注解进行了总结,同时也会举出具体例子,供大家学习和参考。注解
  • 摸鱼心法第一章——和配置文件说拜拜

    为了能摸鱼我们团队做了容器化,但是带来的问题是服务配置文件很麻烦,然后大家在群里进行了“亲切友好”的沟通图片图片图片图片对比就对比,简单对比下独立配置中心和k8s作为配
  • 让我们一起聊聊文件的操作

    文件【1】文件是什么?文件是保存数据的地方,是数据源的一种,比如大家经常使用的word文档、txt文件、excel文件、jpg文件...都是文件。文件最主要的作用就是保存数据,它既可以保
  • .NET 程序的 GDI 句柄泄露的再反思

    一、背景1. 讲故事上个月我写过一篇 如何洞察 C# 程序的 GDI 句柄泄露 文章,当时用的是 GDIView + WinDbg 把问题搞定,前者用来定位泄露资源,后者用来定位泄露代码,后面有朋友反
  • 三分钟白话RocketMQ系列—— 如何发送消息

    我们知道RocketMQ主要分为消息 生产、存储(消息堆积)、消费 三大块领域。那接下来,我们白话一下,RocketMQ是如何发送消息的,揭秘消息生产全过程。注意,如果白话中不小心提到相关代
  • 慕岩炮轰抖音,百合网今何在?

    来源:价值研究所 作者:Hernanderz“难道就因为自己的一个产品牛逼了,从客服到总裁,都不愿意正视自己产品和运营上的问题,选择逃避了吗?”这一番话,出自百合网联合创
  • 华为Mate60标准版细节曝光:经典星环相机模组回归

    这段时间以来,关于华为新旗舰的爆料日渐密集。据此前多方爆料,今年华为将开始恢复一年双旗舰战略,除上半年推出的P60系列外,往年下半年的Mate系列也将
  • 苹果、三星、惠普等暂停向印度出口笔记本和平板电脑

    集微网消息,据彭博社报道,在8月3日印度突然禁止在没有许可证的情况下向印度进口电脑/平板及显示器等产品后,苹果、三星电子和惠普等大公司暂停向印度
Top