pnpm版本管理
推荐使用 corepack 进行管理
corepack 是跟随node一起下载的(在node16.10.0之后 之前的不支持要独立下载)
注意事项: 如果corepack enable不生效 可能是收到之前安装的全局pnpm影响 先删除全局pnpm
常用命令:
- corepack enable 开启 (开启后全局才能使用pnpm)
- corepack disable 关闭
- corepack prepare pnpm@v10.18.3 --activate 准备并激活指定版本pnpm
- corepack use pnpm@v10.18.3 给当前项目指定包管理
monorepo项目 我的是react项目 pnpm8 -> pnpm10
备份老文件 .npmrc pnpm-lock.yarm package.json
修改
- .npmrc 需要配置要提升的包 下面是举例 我的是react项目不提升react就会报错(React DevTools 无法正确访问 React 内部属性)
//.npmrc
public-hoist-pattern[]=react
public-hoist-pattern[]=react-dom
public-hoist-pattern[]=antd
public-hoist-pattern[]=@ant-design/*
- package.json中添加onlyBuiltDependencies pnpm10在install的时候依赖包的生命周期脚本(preinstall, install, postinstall 等)默认不再执行,需要使用 onlyBuiltDependencies 参数手动指定允许执行脚本的包
//执行 pnpm approve-builds 手动选择一般全选 执行完会自动添加一些信息
pnpm approve-builds
- pnpm-workspace.yaml
onlyBuiltDependencies:
- core-js
- core-js-pure
- es5-ext
- esbuild
- 删除pnpm-lock.yarm 和 项目中所有node_module
- pnpm install 重新安装依赖生成新pnpm-lock.yaml文件