您现在的位置是:首页 >技术教程 >pnpm管理node,管理依赖网站首页技术教程
pnpm管理node,管理依赖
简介pnpm管理node,管理依赖
pnpm管理node官方教程:https://pnpm.io/zh/cli/env
pnpm统一管理node、全局依赖、项目依赖,每个依赖在磁盘只需要下载一次,很好用
PS:nvm也好用,但是切换node就要重新安装全局依赖,而且…少装一个是一个
注意:建议pnpm最低使用node是16
安装pnpm
iwr https://get.pnpm.io/install.ps1 -useb | iex
# 使用github安装,所以可能下载失败,可以多试几次
# 默认使用的是pnpm最新版
安装完之后可以使用 pnpm -v
查看安装的版本
若是安装失败,用下面的命令开启权限
开启pnpm权限
- 管理员身份打开powershell
# 输入
set-executionpolicy remotesigned
#根据提示,输入A,回车
配置安装位置(若是不介意C盘,可以默认)
pnpm setup # 自动设置环境变量
pnpm config set store-dir "D:softwarepnpmnode.pnpm-store" # pnpm全局仓库路径(类似 .git 仓库)
pnpm config set global-dir "D:softwarepnpmnodepnpm-global" # pnpm全局安装路径
pnpm config set state-dir "D:softwarepnpmnodepnpm-state-config" # pnpm创建pnpm-state.json文件的目录
pnpm config set cache-dir "D:softwarepnpmnodecache" # pnpm全局缓存路径,pnpm全局安装的依赖会安装到这里
# pnpm config set global-bin-dir "D:softwarepnpmnode
odejs" # 不要设置了, pnpm全局bin路径,设置了下载nodejs会异常
安装node
默认会安装在
C:Users用户名AppDataLocalpnpm odejs
# 安装具体某个版本
pnpm env use --global 16.20.0
# 使用最后的稳定版
pnpm env use --global lts
安装异常下面有解决方案
安装nrm 管理源
pnpm install -g nrm
项目配置
每一个项目都要在根目录放一个配置文件.npmrc
,内容
shamefully-hoist=true
auto-install-peers=true
strict-peer-dependencies=false
不加的话,pnpm很多依赖不会自动下载,会无法启动
常用命令
# 查看xxx的所有版本
pnpm view xxx versions
# 查看依赖(全局)
pnpm list [-g]
# 下载包(XXX)
pnpm install XXX
pnpm i XXX
# -S 默认写入dependencies
pnpm add XXX -S
# -D devDependencies
pnpm add XXX -D
# 全局安装
pnpm add XXX -g
# 移除包(XXX)
pnpm remove XXX
# 移除全局包(XXX)
pnpm remove XXX --global
# 更新所有依赖项
pnpm up
# 更新包(XXX)
pnpm upgrade XXX
# 更新全局包(XXX)
pnpm upgrade XXX --global
# 设置存储路径
pnpm config set store-dir /path/to/.pnpm-store
# 启动(和npm一样即可)
pnpm run dev 或者 pnpm dev
# 查看源
pnpm config get registry
# 切换淘宝源
pnpm config set registry http://registry.npm.taobao.org
异常处理
注意,改了package。json的依赖版本之后,若是install后启动失败,一定要删除node_modules和pnpm-lock.yaml重新install。
The configured global bin directory “xxxx odejs” is not in PATH
配置了global-bin-dir就会导致这个问题,到C:Users用户名AppDataLocalpnpmconfig
,右键编辑rc文件,将里面的global-bin-dir的一行删除就行了
node-sass版本异常
pnpm对版本比较严格,可以看:https://www.npmjs.com/package/node-sass 找到对应的node的合适的sass版本。
其他的依赖也可能出问题,比如我vue和vue-template-compiler版本不一致,项目使用pnpm就无法启动,统一版本就好。
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。