pnpm多包管理项目
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项目关联
- 当有多个项目集成在packages下面时,可以用一个公共的shared项目文件夹存放各个项目的公共方法,通过index.ts文件导出方法
![在这里插入图片描述](https://img-blog.csdnimg.cn/4f30983cf82147b28aaa0d7e25014c32.png - 然后在需要使用的项目中的packages.json里面添加
"shared": "workspace:*"
,再重新执行pnpm i
使用:import { xxx } from 'shared';
碎碎念:
当前demo项目使用的webpack,不管是安装还是启动项目都非常慢,vite的出现解决了这个问题。后续demo会更改为vite
pnpm多包管理项目相关推荐
- Debian Linux包管理机制
Debian是linux史上的一个非常重要的发行版(话说,笔者写这篇博客时使用的系统就是Debian 8.6,嘿嘿--在工作中使用debian这两年来,感觉debina是异常稳定哦,注意是异常稳定,至 ...
- 节省磁盘空间的新一代包管理工具PNPM
在使用前端工具时,yarn.npm都是大家常用的包管理器,但是如果有多个项目使用了同一个依赖的时候,就会在硬盘里保存相应的副本,一旦这个多个项目变得数字很大,那么这个硬盘空间也是会逐渐吓人的. 所以今 ...
- pnpm 是更快的包管理工具
pnpm 是快速的,节省磁盘空间的包管理工具.平常我们都是使用 yarn 或者 npm 等等,现在 pnpm 比替代品快 2 倍. 通过 npm 安装 npm install -g pnpm 通过 n ...
- 包管理工具,npm、yarn、pnpm
1.包管理工具概述 本门课程的前置知识:JavaScript.ES6.模块化.git 本门课程的所有代码均书写在 nodejs 环境中,不涉及浏览器环境 概念 模块(module) 通常以单个文件形式 ...
- 为什么说pnpm是最先进的包管理工具?
1.首先看一下pnpm的兄弟们(npm.yarn)产生的问题痛点: 主要介绍一下两个问题: 幽灵依赖和依赖分身 幽灵依赖 Phatom A "phantom dependency" ...
- 包管理工具 —— 更推荐的 pnpm
前言 一般我们接触的包管理工具有 npm.yarn 以及pnpm,小柒在工作中基本上新项目都采用了pnpm 来作为包管理工具,那我们就来聊一聊换成 pnpm 的好处. npm npm 从 v1 -v3 ...
- 更好的包管理器——pnpm
此文是对 pnpm的重要贡献者Zoltan Kochan的几篇关于pnpm.monorepo文章的翻译概括,可能存在不准确的部分. 为什么要使用pnpm? pnpm是一种更高效快捷的包管理器. Zol ...
- 【总结】1409- 深入浅出 npm yarn pnpm 包管理机制
前端开发者们每天都在接触 xxx install,包管理器是必不可少的工具. 本文会以尽量简洁的语言来描述当下主流包管理工具 npm.yarn.pnpm 的管理策略以及进化史,不涉及任何晦涩的代码. ...
- 深入浅出 npm yarn pnpm 包管理机制
前端开发者们每天都在接触 xxx install,包管理器是必不可少的工具. 本文会以尽量简洁的语言来描述当下主流包管理工具 npm.yarn.pnpm 的管理策略以及进化史,不涉及任何晦涩的代码. ...
最新文章
- RHEl5 dns的配置
- noip2016 换教室
- Python即Python解释器的发展史
- 有种欢迎叫“来了就是深圳人”
- Spring AOP EXPRESSION
- oracle脂肪分析仪,CEM推出油脂快速分析新技术
- mysql 5.8_mysql5.8安装指南
- fso 拒绝访问_ASP中FSO的神奇功能 - 文件读取
- 从零实现一个3D目标检测算法(3):PointPillars主干网实现(持续更新中)
- python代码html显示数据_通过AJAX success方法以html格式显示数据
- C语言练习——百钱百鸡
- Omnipeek 抓包工具
- Linux dstat监控工具简讲
- python读matlab.fig_从fig文件中读取数据
- 祥云杯2020 Crypto wp
- 电脑增加机械硬盘计算机管理,电脑加装机械硬盘直接插上就行了么
- linux系统安全应急响应
- 如何利用单片机的ADC模块(或者独立的ADC芯片)得到接入ADC管脚上的实际电压值?
- ale_python_interface安装操作
- YOLOv3 代码详解(2) —— 数据处理 dataset.py解析:输入图片增强、制作模型的每层输出的标签
热门文章
- 拱北口岸50条自助查验通道供内地及港澳居民通关(图)
- 做自媒体、短视频,选择平台很重要
- VMware10+ubuntu14.04打开webcam摄像头失败问题
- 微信小程序分类-左侧导航与右侧内容联动
- 无线通讯LoRa---SX1278芯片开发笔记
- css鼠标样式cursor介绍(鼠标手型)
- 好-纹理和材质区别总结
- 如何在计算机课堂中培养核心素养,例谈核心素养培养在初中信息技术教学中的落实...
- java线上情报_java:线上问题排查常用手段
- 5 大步骤 + 10 个案例,堪称 SQL 优化万能公式