前提一:我有一个source-project源码库,有一个develop-project项目库。想使用pnpm link对source-project进行本地调试。
前提二:source-project源码库已打包
本地调试详细步骤如下:
1、检查是否配置了系统环境变量,PNPM_HOME: C:\Users\xxx\AppData\Local\pnpm,并将 PNPM_HOME 放到环境变量-用户变量的 Path 里。
2、在 source-project 目录下执行 `pnpm link`:
PS D:\source-project> pnpm link Lockfile is up to date, resolution step is skippedC:\Users\xxx\AppData\Local\pnpm\global\5:+ source-project 0.0.4 <- D:\source-project# 注意:如果显示的版本号与package.json里的不一致,# 可以删除 C:\Users\xxx\AppData\Local\pnpm\global\5 文件夹,再执行一遍 pnpm link。# 一定要时刻检查,C:\Users\xxx\AppData\Local\pnpm\global\5\node_modules\source-project 是能访问的!
3、在develop-project 执行 `pnpm link source-project`(没有-g!),node_modules/source-project 会更新为本地source-project。
PS D:\develop-project> pnpm link source-projectProgress: resolved 983, reused 899, downloaded 0, added 0, done. postinstall$ husky install│ husky - Git hooks installed└─ Done in 1.2sdependencies:+ source-project 0.0.4 <- C:\Users\xxx\AppData\Local\pnpm\global\5\node_modules\source-project# develop-project 执行完`pnpm link source-project`会生成一个pnpm-workspace.yaml,要留意里面指向的本地依赖包的地址能访问!
4、调试结束后,使用 `pnpm uninstall source-project`卸载本地source-project。
其他问题:
Q:如果在develop-project 执行 `pnpm link source-project -g`会发生什么?
A:命令报错:ERR_PNPM_CANNOT_REMOVE_MISSING_DEPS Cannot remove 'source-project': no such dependency found in 'dependencies'。同时,C:\Users\xxx\AppData\Local\pnpm\global\5\node_modules\source-project 会被删掉