pnpm + turbo 实践 monorepo

1、创建项目

npx create-turbo@latest

2、turbo.json 配置文件

 

1
2
3
4
5
"dependsOn": ["^build"], // packges 目录下包的执行命令,用于处理依赖问题,依赖项执行的命令
"outputs": ["dist/**", ".next/**"] // Turborepo将缓存默认输出到 dist/** 和build/**文件夹中。可以通过outputs数组来设置缓存的输出目录
"frontend#deploy": {
               "dependsOn": ["ui#test", "backend#deploy"]          
           } // 增加了一个前端的部署任务。这个部署任务,依赖于一个UI组件库和对应的后端项目,只有这个UI组件库通过单测,然后后端项目部署成功,才会进行部署。对于指定包的依赖,使用<package>#<task>语法。

  

3、如果考虑增量缓存可以配合 CI 机器缓存

 

1
2
3
4
cache:
  directories:
    - dist
    - build

  

 

3、pnpm 的作用

  • 全局安装
pnpm add react react-dom -w
  • 可以支持指定 app 安装依 

pnpm add express -r --filter @apps/react-demo

 

  • 项目之间相互依赖

pnpm add ui@ --filter web

安装之后考虑版本换成 * ,确保是最新的

  • 查看依赖关系

pnpm why -r <packageName>

 

4、turbo 作用

  • 支持增量构建,配合设置缓存,加快构建速度
  • 管道概念,不一定用到
  • 配置文件的复用「看着好用,不一定要用」
  • 远程缓存,支持自建,看上去是有想象力的

 

 

 

参考资料

https://nx.dev/getting-started/intro

https://pnpm.io/zh/

https://turbo.build/

https://turbo.build/repo/docs/handbook/migrating-to-a-monorepo

http://mix.zhdocs.io/guide/basic.html

posted @   地铁程序员  阅读(1274)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
历史上的今天:
2018-03-06 Adriod与HTML+JS的交互
点击右上角即可分享
微信分享提示