pnpm shamefully-hoist 设置
Jun-23 · 3min
shamefully-hoist
默认情况下,pnpm
会创建一个半严格的 node_modules
结构,意味着依赖项可以访问未声明的依赖项,但 node_modules
之外的模块不能。在这种布局下,大多数生态系统中的包都能正常工作。然而,如果某些工具只能在依赖项提升到 node_modules
根目录时才能正常工作,你可以将此选项设置为 true
来为你提升这些依赖项。
简单来说就是现在有一个模块 A,其依赖一个模块 B,在项目的 package.json
里依赖模块 A,模块 A 是可以正常的访问到模块 B 的,但是在项目里就不能访问模块 B,当 shamefully-hoist=true
就会提升模块 B,然后在项目里都可以访问。
默认 pnpm
在 node_modules
只会暴露在 package.json
里指定的依赖,不会像 npm
一样,暴露依赖包括依赖的依赖。
ini
hoist-pottern
ini
将某个依赖提升到 node_modules/.pnpm/node_modules
外部无法引用
public-hoist-pattern
ini
将依赖放到根目录的 node_modules
里,根目录可以引用