pnpm link如何不踩坑

前提一:我有一个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`:

bash 复制代码
PS D:\source-project> pnpm link    

Lockfile is up to date, resolution step is skipped

C:\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。

bash 复制代码
PS D:\develop-project> pnpm link source-project

Progress: resolved 983, reused 899, downloaded 0, added 0, done

. postinstall$ husky install

│ husky - Git hooks installed

└─ Done in 1.2s

dependencies:

+ 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 会删掉

相关推荐
LYFlied9 小时前
Webpack 深度解析:从原理到工程实践
前端·面试·webpack·vite·编译原理·打包·工程化
Irene19912 天前
解决 pnpm 构建脚本被阻止(Ignored build scripts)的问题
pnpm
LYFlied2 天前
Webpack详细打包流程解析
前端·面试·webpack·node.js·打包·工程化
LYFlied2 天前
幽灵依赖详解
npm·pnpm·打包工具·yarn·工程化·包管理工具·幽灵依赖
LYFlied3 天前
前端项目包管理器怎么选?
前端·面试·npm·pnpm·yarn·工程化·包管理器
F2E_Zhangmo3 天前
pnpm如何对node_modules打补丁
webpack·npm·pnpm
SunnyRivers10 天前
Python打包指南:编写你的pyproject.toml
python·打包·toml
宁雨桥11 天前
使用pnpm构建高效Monorepo:从零到一的完整指南
前端·pnpm·项目架构
新手村领路人1 个月前
python打包成exe
python·打包
这是个栗子1 个月前
【问题解决】用pnpm创建的 Vue3项目找不到 .eslintrc.js文件 及 后续的eslint配置的解决办法
javascript·vue.js·pnpm·eslint