Node如何获取pnpm安装的包源码真实代码路径并操作 前言
在改造老工程的包依赖管理的时候,有时候我们想引入一些社区比较好用的包管理;
有时候一些阻塞点会阻拦我们,特别我们构建流程可能会拷贝node_modules包源码的行为;
举个研发例子
不同公司的
CLI因为面对的业务场景和构建场景不一样,有些时候,我们会做一些差异化的特性,
比如工程前端CLI有暴露代码映射拷贝行为,就是打包的时候会把node_modules下的某些包的资源拷贝到特定路径,用于后续其他处理
安装的目录结构是固定的,包名+源文件 ,所以寻址是固定的
问题聚焦
当我们想用pnpm这类的时候,安装的node_modules目录结构就是有他们自己的一些特性,而不是一个常规npm生成的node_modules
结构
pnpm 默认创建了一个非平铺的 node_modules,因此代码无法访问任意包
如图所示:
这种包名加版本号的,就没法作为一个固定规律寻址了。
,采用pnpm安装依赖,输出的绝对路径可以寻址到源码
console.log(require.resolve('yaml'));
console.log(require.resolve('axios') 37310
|