为什么 pnpm 在顶层链接某些依赖项?

Why is pnpm linking certain dependencies at the top level?

如果我 运行 :

pnpm install eslint

然后我的 node_modules 目录最终包含:

node_modules
  .bin/
  .pnpm/
  @eslint/eslintrc
  eslint
  eslint-scope
  eslint-utils
  eslint-visitor-keys
  .modules.yaml

我似乎找不到关于 eslint 或其依赖项的任何特别之处,但也许我没有找到正确的地方。

唯一有意义的是 pnpm 将这些依赖项提升到顶部完全基于它们以我实际安装的包的名称为前缀的事实。但这似乎真的不对。

我在这里错过了什么?

以防其他人撞到那个令人头疼的问题:

答案很简单,public-hoist-pattern的默认值包含*eslint*,所以所有eslint相关的模块都是特例

参见:https://pnpm.io/npmrc#public-hoist-pattern