Skip to content
On this page

极简 Pnpm Monorepo 单体仓库

写在开始,点击传送门了解 pnpm monorepo 5 分钟搞懂 Monorepo

如果不确定项目是否该使用 monorepo,那大概是不需要。

适用于多包项目,满足多包公共依赖配置抽离,多包分别管理开发、发布,解决开发过程中包之间调试和版本更新问题。

1. 安装 pnpm 参考官网

sh
# 查看 pnpm 版本
pnpm -v

2. 创建根项目

sh
# 创建项目目录
mkdir fe-infra

# 进入项目
cd fe-infra

# 初始化项目
pnpm init

3. 添加 pnpm-workspace.yaml

sh
# 创建 yaml 文件
touch pnpm-workspace.yaml

# yaml 文件 增加
packages:
    - 'packages/*'

4. 创建子项目

sh

# 创建子项目
mkdir packages

cd packages

# 创建示例项目
mkdir tools

cd tools

# 初始化示例项目
pnpm init
# 非必须 使用 @scope/name 重命名 pkg name 为 @infra/tools。

# 重复以上步骤 创建 web 子项目

5. 添加依赖

sh
# 根目录添加 prettier 到开发依赖
pnpm add prettier -w -D

sh
# 示例:安装开源 @infra/tools 安装 lodash 依赖。删除 remove
pnpm -F @infra/tools add lodash

# 示例:安装项目间依赖, @infra/qui-antd 安装 @infra/tools 依赖。
pnpm -F @infra/web  add @infra/tools  

# 自动依赖 workspace 最新版本:
# 查看 web -- pkg.json 将  "@infra/tools": "workspace:^1.0.0" 修改为 "@infra/tools": "workspace:*"。

6. 根目录增加 npm 指令

json
"scripts": {
    "tools:dev": "pnpm --dir ./packages/tools dev", 
    "tools:build": "pnpm --dir ./packages/tools build", 
    "test": "echo \"Error: no test specified\" && exit 1"
  },

7. 业务项目开发,将子项目换成业务项目即可。

示例不包含公共配置抽离,可参考 Vant Monorepo 配置

根据 MIT 许可证发布