持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第4天,点击查看活动详情
序
对于前端项目的包管理工具,从最开始的npm
到cnpm
,现在主要使用的是yarn
对于pnpm
这款工具之前就已经听说过了,但是没有实践使用过
pnpm中文网
:pnpm - 速度快、节省磁盘空间的软件包管理器 | pnpm 中文文档 | pnpm 中文网
pnpm
pnpm
最大的优点就在于通过连接的方式节省磁盘空间并提升安装速度
当使用 npm 或 Yarn 时,如果你有 100 个项目,并且所有项目都有一个相同的依赖包,那么, 你在硬盘上就需要保存 100 份该相同依赖包的副本。然而,如果是使用 pnpm,依赖包将被 存放在一个统一的位置
pnpm安装
pnpm的安装方式有很多种,因为我是安装了node
的,所以直接使用npm install -g pnpm
进行全局安装即可。
其他方式安装:安装 | pnpm 中文文档 | pnpm 中文网
创建项目
我打算创建一个vue2
的vue cli
项目
之前需要使用vue create demo-name
创建即可,现在需要将包管理工具由npm
切换成pnpm
通过vue create --help
可以得知切换packageManager
包管理工具可以使用-m
所以当前命令:vue create -m pnpm demo-name
Error: command failed: pnpm install --reporter silent --shamefully-hoist
但是当我使用时,却出现了错误
我通过网上查找大概找到了两个方法,第一个是重新安装pnpm
的版本,将其修改为6
第二个则是对.npmrc
进行修改,.npmrc
位于C:\Users\用户名
文件夹下
在.npmrc
中添加:auto-install-peers=true
这样一来,使用命令重新创建vue cli
项目就成功了
pnpm全局包位置
既然说pnpm
是全局安装包,并指向引用的。那么全局包位置在哪里呢? pnpm
会在磁盘上生成一个store-dir
文件夹,将内容存储在其中。
-
可以使用命令知道
store-dir
位置:pnpm store path
-
可以在项目
node_module/.modules.yaml
中查找storeDir
将yarn项目包换成pnpm
既然可以将包全局放到一个文件夹去,那么是否可以将以前使用yarn
安装下载的项目替换成pnpm
呢
我删除了之前echarts
绘制地图项目中的node_modules
然后使用pnpm install
重新安装即可