nodejs项目Monorepo模式的基础操作

简单说明

Monorepo(一仓多包),主要是指nodejs环境下的项目,简单说就是在一个git代码仓库下,把项目拆分为多个package,可以分别开发但又互相协作。

举例

一个nodejs环境下的全站项目,需要前后端分离,这很自然的就会产生一个情况,前后端后使用一些共同的定义,比如复杂的接口参数。这时,把这些接口参数的定义,放到一个公共的地方,就是一个很自然很合理的做法。这就是Monorepo的一个基础使用场景。 技术上,Monorepo需要使用pnpm的workspace。

项目搭建过程

shell 复制代码
// 首先全局安装pnpm
npm install -g pnpm

// 创建项目基本目录
mkdir prj_root
// 在项目根目录下init
pnpm init

// 如果确定的话,可以先安装一些公用的包在根目录 比如vite
pnpm add vite -w
pnpm add -D typescript -w
pnpm add -D @types/node -w

// 创建tsconfig
pnpm tsc --init

// 创建pnpm的workspace管理文件
touch pnpm-workspace.yaml

pnpm-workspace.yaml中写入

yaml 复制代码
packages:
    - 'packages/*'

下面进行子包的操作

共享库 shared

shell 复制代码
// 创建packages目录,在其中进行多包的操作
cd prj_root && mkdir packages

// 先创建共享库
cd packages && mkdir shared && pnpm init && pnpm tsc --init

// 创建 src/index.ts
// 先写一个简单的interface 代码不贴了
    
// 

后端 backend

shell 复制代码
cd packages && mkdir backend && pnpm init && pnpm tsc --init
 

子包的tsconfig要继承根目录的tsconfig

json 复制代码
{
  "extends": "../../tsconfig.json",
  "compilerOptions": {
    "outDir": "./dist",
    "rootDir": "./src"
  }
}

添加共享包

shell 复制代码
// 通过workspace方式添加
pnpm add @agent4/shared@workspace:*

前端frontend

shell 复制代码
// 前端子包操作
相关推荐
赵庆明老师39 分钟前
Vben精讲:16-熟悉Vite前端工具链
前端
瑞瑞小同学3 小时前
处理echarts x轴内容过多,重叠问题
前端·javascript·echarts
HexCIer3 小时前
面向未来的原子化 CSS:UnoCSS 核心架构分析与 Tailwind CSS 现状
前端·css·vite
程序员黑豆3 小时前
鸿蒙应用开发中的单位详解:px、vp、fp、lpx
前端·harmonyos
像我这样帅的人丶你还4 小时前
MCP + npm:给五年前的老系统接上AI
前端·javascript·agent
南一Nanyi4 小时前
依赖注入和控制反转
前端·设计模式·nestjs
小村儿4 小时前
连载14-实战篇--一个半月,我一个人和 Claude Code 搭出一套数字人工程
前端·后端·ai编程
愚公移码4 小时前
蓝凌EKP18产品:流程虚拟机(PVM)
java·开发语言·前端
promiseThen4 小时前
5 分钟上手 Markdown:标题到表格、代码块与简历实战
前端
web66liang4 小时前
webpack4+vue2项目使用 sass-embedded 导致的 DockerfIle 构建失败的问题
前端