Mrcdh技术博客 Mrcdh技术博客
首页
  • Html5
  • Javascript
  • Nodejs
  • electron
  • Android
  • 微信公众号
  • 框架
  • 其他
  • Mysql
  • PHP
  • Python
  • java
  • Gulp
  • 其它
  • 网站
  • 资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Mrcdh

全栈开发小学生
首页
  • Html5
  • Javascript
  • Nodejs
  • electron
  • Android
  • 微信公众号
  • 框架
  • 其他
  • Mysql
  • PHP
  • Python
  • java
  • Gulp
  • 其它
  • 网站
  • 资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • Html5

  • JavaScript

  • Nodejs

    • Nodejs 使用 nodemailer 发送邮件
    • npm镜像管理
    • npm&yarn&npx
    • puppeteer+axios保持登录请求
    • 使用node创建window服务启动程序
    • node图片转base64与base64转图片
    • node图片生成pdf
    • 常用npm库
    • 使用pnpm的monorepo组织项目
      • 暴漏公共模块
      • 为指定模块安装依赖
      • 指定内部模块之间的互相依赖
      • 运行子项目
    • npm&yarn&pnpm命令对比
    • Node常见问题
    • cheerio
    • request
    • selenium-webdriver
    • midway使用常见问题
    • dayjs的基本使用
    • ffmpeg的基本使用
    • mitt微型事件监听发布器
  • express

  • electron

  • Android

  • 微信公众号

  • 框架

  • 其他

  • selenium

  • Sequelize

  • 大前端
  • Nodejs
mrcdh
2024-11-01
目录

使用pnpm的monorepo组织项目

初始化项目

pnpm init
1

在根目录下创建pnpm-workspace.yaml文件

packages:
  # 子目录下所有项目
  - "packages/*"
  # 公共目录
  - "common"
1
2
3
4
5

# 暴漏公共模块

pnpm -F mobile add common
pnpm -F "./packages/\*" add common
1
2

# 为指定模块安装依赖

pnpm --filter mobile i -S lodash // 生产依赖
pnpm --filter mobile i -D lodash // 开发依赖
1
2

# 指定内部模块之间的互相依赖

// 指定 a 模块依赖于 b 模块
pnpm --filter a i -S b
1
2

pnpm workspace 对内部依赖关系的表示不同于外部,它自己约定了一套 Workspace 协议 (workspace:)。下面给出一个内部模块 a 依赖同是内部模块 b 的例子。

{
  "name": "a",
  // ...
  "dependencies": {
    "b": "workspace:^"
  }
}
1
2
3
4
5
6
7

在实际发布 npm 包时,workspace:^ 会被替换成内部模块 b 的对应版本号(对应 package.json 中的 version 字段)。替换规律如下所示:

{
  "dependencies": {
    "a": "workspace:*", // 固定版本依赖,被转换成 x.x.x
    "b": "workspace:~", // minor 版本依赖,将被转换成 ~x.x.x
    "c": "workspace:^" // major 版本依赖,将被转换成 ^x.x.x
  }
}
1
2
3
4
5
6
7

# 运行子项目

# pnpm run --filter 子项目package.json中name 子项目命令
pnpm run --filter mobile dev
1
2
上次更新: 2024/11/05, 17:01:10
常用npm库
npm&yarn&pnpm命令对比

← 常用npm库 npm&yarn&pnpm命令对比→

最近更新
01
uniapp常见问题
03-19
02
Vue3项目搭建
12-25
03
出海技术栈和工具
10-30
更多文章>
Theme by Vdoing | Copyright © 2020-2025 Mrcdh | 苏ICP备2020058908号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×