pnpm官网
在今年的项目中,领导使用了monorepo多包管理模式来管理项目,具体使用技术为:

  • pnpm
  • vue3
  • vite
  • ant-design Vue
  • typescript
  • formilyjs 表单解决方案

pnpm

其中:pnpm 可以说是一个多包管理器,有以下优点

  • 节约磁盘空间
  • 提升安装速度

workspace 支持

对于 monorepo 类型的项目,pnpm 提供了 workspace 来支持,而且比yarn workspace配置更简单,只需在项目根目录下创建一个 pnpm-workspace.yaml 文件。 具体可以参考官网文档

使用指南

1.安装:
npm install pnpm -g
2.初始化pnpm项目, 新建一个文件夹作为项目目录,在目录下执行指令(和 npm init 一致):
pnpm init
3.安装依赖:
pnpm i

4.Workspace配置:
在项目下创建一个工作区的文件夹,例如 packages,里面可以包括多个项目文件,
在根目录创建一个workspace配置文件 pnpm-workspace.yaml,写入:

packages:# 所有在 packages 子目录下的 package- 'packages/**'# 不包括在 test 文件夹下的 package- '!**/test/**'

5.Monorepo常用指令

名词解释:
workspace_name:项目名称
package_name:安装包名称(vue,axios等)

安装依赖pnpm add <package_name> --filter <workspace_name> // 安装某个特定属性
pnpm i // 全局安装
pnpm i <package_name> --filter <workspace_name> // 安装某个特定属性运行脚本pnpm run serve --filter=<workspace_name>删除全局和每个workspace的node_modulespnpm -r exec rm -rf node_modules
pnpm rimraf  **/node_modules

启动项目命令集成

当有多个项目在packages的时候,可能需要在每个项目中寻找项目启动的命令,所以可以集成在根目录下面的package.json里面

{"private": true,"name": "pnpm-project","version": "1.0.0","description": "","main": "index.js","scripts": {"supervision-task:dev": "pnpm run serve --filter=supervision-task", "test": "echo \"Error: no test specified\" && exit 1"},"author": "","license": "ISC"
}

下次启动项目的时候 不用 pnpm run serve --filter=supervision-task这么长,可以直接执行 pnpm supervision-task:dev

pacakges项目关联

  1. 当有多个项目集成在packages下面时,可以用一个公共的shared项目文件夹存放各个项目的公共方法,通过index.ts文件导出方法
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/4f30983cf82147b28aaa0d7e25014c32.png
  2. 然后在需要使用的项目中的packages.json里面添加 "shared": "workspace:*",再重新执行pnpm i
    使用:import { xxx } from 'shared';

碎碎念:

当前demo项目使用的webpack,不管是安装还是启动项目都非常慢,vite的出现解决了这个问题。后续demo会更改为vite

pnpm多包管理项目相关推荐

  1. Debian Linux包管理机制

    Debian是linux史上的一个非常重要的发行版(话说,笔者写这篇博客时使用的系统就是Debian 8.6,嘿嘿--在工作中使用debian这两年来,感觉debina是异常稳定哦,注意是异常稳定,至 ...

  2. 节省磁盘空间的新一代包管理工具PNPM

    在使用前端工具时,yarn.npm都是大家常用的包管理器,但是如果有多个项目使用了同一个依赖的时候,就会在硬盘里保存相应的副本,一旦这个多个项目变得数字很大,那么这个硬盘空间也是会逐渐吓人的. 所以今 ...

  3. pnpm 是更快的包管理工具

    pnpm 是快速的,节省磁盘空间的包管理工具.平常我们都是使用 yarn 或者 npm 等等,现在 pnpm 比替代品快 2 倍. 通过 npm 安装 npm install -g pnpm 通过 n ...

  4. 包管理工具,npm、yarn、pnpm

    1.包管理工具概述 本门课程的前置知识:JavaScript.ES6.模块化.git 本门课程的所有代码均书写在 nodejs 环境中,不涉及浏览器环境 概念 模块(module) 通常以单个文件形式 ...

  5. 为什么说pnpm是最先进的包管理工具?

    1.首先看一下pnpm的兄弟们(npm.yarn)产生的问题痛点: 主要介绍一下两个问题: 幽灵依赖和依赖分身 幽灵依赖 Phatom A "phantom dependency" ...

  6. 包管理工具 —— 更推荐的 pnpm

    前言 一般我们接触的包管理工具有 npm.yarn 以及pnpm,小柒在工作中基本上新项目都采用了pnpm 来作为包管理工具,那我们就来聊一聊换成 pnpm 的好处. npm npm 从 v1 -v3 ...

  7. 更好的包管理器——pnpm

    此文是对 pnpm的重要贡献者Zoltan Kochan的几篇关于pnpm.monorepo文章的翻译概括,可能存在不准确的部分. 为什么要使用pnpm? pnpm是一种更高效快捷的包管理器. Zol ...

  8. 【总结】1409- 深入浅出 npm yarn pnpm 包管理机制

    前端开发者们每天都在接触 xxx install,包管理器是必不可少的工具. 本文会以尽量简洁的语言来描述当下主流包管理工具 npm.yarn.pnpm 的管理策略以及进化史,不涉及任何晦涩的代码. ...

  9. 深入浅出 npm yarn pnpm 包管理机制

    前端开发者们每天都在接触 xxx install,包管理器是必不可少的工具. 本文会以尽量简洁的语言来描述当下主流包管理工具 npm.yarn.pnpm 的管理策略以及进化史,不涉及任何晦涩的代码. ...

最新文章

  1. RHEl5 dns的配置
  2. noip2016 换教室
  3. Python即Python解释器的发展史
  4. 有种欢迎叫“来了就是深圳人”
  5. Spring AOP EXPRESSION
  6. oracle脂肪分析仪,CEM推出油脂快速分析新技术
  7. mysql 5.8_mysql5.8安装指南
  8. fso 拒绝访问_ASP中FSO的神奇功能 - 文件读取
  9. 从零实现一个3D目标检测算法(3):PointPillars主干网实现(持续更新中)
  10. python代码html显示数据_通过AJAX success方法以html格式显示数据
  11. C语言练习——百钱百鸡
  12. Omnipeek 抓包工具
  13. Linux dstat监控工具简讲
  14. python读matlab.fig_从fig文件中读取数据
  15. 祥云杯2020 Crypto wp
  16. 电脑增加机械硬盘计算机管理,电脑加装机械硬盘直接插上就行了么
  17. linux系统安全应急响应
  18. 如何利用单片机的ADC模块(或者独立的ADC芯片)得到接入ADC管脚上的实际电压值?
  19. ale_python_interface安装操作
  20. YOLOv3 代码详解(2) —— 数据处理 dataset.py解析:输入图片增强、制作模型的每层输出的标签

热门文章

  1. 拱北口岸50条自助查验通道供内地及港澳居民通关(图)
  2. 做自媒体、短视频,选择平台很重要
  3. VMware10+ubuntu14.04打开webcam摄像头失败问题
  4. 微信小程序分类-左侧导航与右侧内容联动
  5. 无线通讯LoRa---SX1278芯片开发笔记
  6. css鼠标样式cursor介绍(鼠标手型)
  7. 好-纹理和材质区别总结
  8. 如何在计算机课堂中培养核心素养,例谈核心素养培养在初中信息技术教学中的落实...
  9. java线上情报_java:线上问题排查常用手段
  10. 5 大步骤 + 10 个案例,堪称 SQL 优化万能公式