返回

一仓库多项目,独立打包:Vite2.0项目的类mono-repo实践

前端

引言

在前端开发中,随着项目规模的不断扩大,项目结构和模块化管理变得越来越重要。mono-repo是一种流行的项目管理方式,它允许在一个仓库中管理多个项目,从而实现代码复用和统一管理。

然而,传统的mono-repo存在一些缺点,例如:

  • 项目结构复杂,难以维护。
  • 构建速度慢,因为每次构建都需要编译整个仓库。
  • 难以独立部署项目。

Vite 2.0是一个新的前端构建工具,它具有以下特点:

  • 基于原生ESM,不需要构建步骤。
  • 构建速度快,因为只编译需要的内容。
  • 支持模块联邦,可以实现组件和逻辑的复用。

Vite 2.0中的类mono-repo实践

Vite 2.0的类mono-repo实践并不是真正的mono-repo,而是一种变通的做法。它允许在一个仓库中管理多个项目,但每个项目都是独立打包的。这种做法可以实现组件和逻辑的复用,同时保持项目的独立性。

项目结构

在Vite 2.0中,类mono-repo项目的结构如下:

my-project
├── package.json
├── vite.config.js
├── projects
│   ├── project-1
│   │   ├── package.json
│   │   ├── src
│   │   └── vite.config.js
│   ├── project-2
│   │   ├── package.json
│   │   ├── src
│   │   └── vite.config.js
│   └── ...
└── node_modules

其中:

  • package.json是整个仓库的根目录的package.json文件。
  • vite.config.js是整个仓库的根目录的Vite配置文件。
  • projects目录包含多个项目,每个项目都是一个独立的Vite项目。

构建流程

在构建项目时,需要先运行以下命令安装依赖:

npm install

然后,运行以下命令构建项目:

npm run build

这将构建所有项目,并将构建结果输出到dist目录。

组件和逻辑的复用

在类mono-repo项目中,可以很方便地复用组件和逻辑。例如,可以将公共组件放在一个项目中,然后在其他项目中引用。也可以将公共逻辑放在一个项目中,然后在其他项目中调用。

组件复用

在Vite 2.0中,可以通过以下方式复用组件:

  1. 将公共组件放在一个项目中,例如project-1
  2. 在其他项目中,例如project-2,安装project-1的包。
  3. project-2中,导入公共组件并使用它们。

逻辑复用

在Vite 2.0中,可以通过以下方式复用逻辑:

  1. 将公共逻辑放在一个项目中,例如project-1
  2. 在其他项目中,例如project-2,安装project-1的包。
  3. project-2中,导入公共逻辑并调用它们。

独立部署

在类mono-repo项目中,每个项目都是独立打包的,因此可以独立部署。这使得部署过程更加灵活。

部署流程

在部署项目时,需要先运行以下命令构建项目:

npm run build

然后,将构建结果复制到目标服务器。

结语

类mono-repo是一种在Vite 2.0中管理多个项目的好方法。它可以实现组件和逻辑的复用,同时保持项目的独立性。此外,类mono-repo项目的构建和部署过程也更加灵活。