懺悔式提升#
預設情況下,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
一樣,暴露依賴包括依賴的依賴。
.npmrc
shamefully-hoist=true
提升模式#
hoist-pattern[]=*eslint*
hoist-pattern[]=*babel*
將某個依賴提升到 node_modules/.pnpm/node_modules
外部無法引用
公共提升模式#
public-hoist-pattern[]=['*eslint*', '*prettier*']
將依賴放到根目錄的 node_modules
裡,根目錄可以引用