如何在 pnpm 中通过符号链接排除软件包安装?

我有一个 Electron 项目并使用了 pnpm ,因为它在通过 npmyarn 安装模块时显着加速。

但是,1 模块通过 node_modules 目录中的符号链接安装存在问题。有没有办法排除依赖成为符号链接?

据我了解文档,具有以下设置的 .npmrc 文件应该足够了,但它不起作用:

hoist-pattern[]=*nodegit*
stack overflow How to exclude package from being installed via symlink in pnpm?
原文答案
author avatar

接受的答案

新答案:

从 v7.13 开始,您可以在项目根目录的 node-linker=hoisted 中设置 .npmrc 。 pnpm 将创建一个扁平的 node_modules,就像 npm 或 Yarn 创建的那样,根本不使用符号链接。

旧答案:

从 5.14 版开始,使用 pnpm 避免符号链接的唯一方法是使用 Plug'n'Play feature 并将 symlink 设置为 false。您可以在项目的根目录中创建一个具有以下内容的 .npmrc

node-linker=pnp
symlink=false

使用提升设置,您只能减少符号链接的数量,而不是避免它们。这篇博文应该解释不同的配置: Node-Modules configuration options with pnpm 。使用 hoist=false ,您将获得最少数量的符号链接。

众所周知,Plug'n'Play 仍然存在很多问题,因此如果没有帮助,请随时在 pnpm discord channel 中寻求帮助或创建问题 in our repository


答案: