pnpm 对等依赖项自动安装

问题描述 投票:0回答:6

如何(或在哪个文件上)设置 true 来自动安装依赖项?

我的终端错误:

my terminal error

提示:如果您希望自动安装对等依赖项,请设置 “auto-install-peers”设置为“true”。提示:如果你不想 pnpm 在对等依赖问题上失败,设置 “严格对等依赖关系”设置为“假”。

auto-install-peers = true
javascript node.js eslint vite pnpm
6个回答
83
投票

pnpm 使用 npm 的配置格式。因此,您应该以与 npm 相同的方式设置配置:

pnpm config set auto-install-peers true

注意: 上述命令使用默认配置位置,该位置存储本地用户帐户的设置(对于 Linux,位于

~/.npmrc
,对于 Windows,位于
%USERPROFILE%\.npmrc
)。要将项目内的设置存储在可签入版本控制的
.npmrc
文件中,您可以使用 @ZoltanKochan 指出的方法,或者等效地将
--location project
附加到命令中:

pnpm config set auto-install-peers true --location project

36
投票

您需要在项目的根目录创建一个

.npmrc
,其中包含以下内容:

auto-install-peers=true

mrmashal 的答案也适用,但仅限于您本地。因此,当其他人获取您的存储库时,他们不会自动安装对等点。


19
投票

v7 中的 npm 会自动安装,pnpm 不会自动安装

npm从v7开始。是否自动安装对等依赖项https://github.com/npm/rfcs/blob/main/implemented/0025-install-peer-deps.md

pnpm 不会自动执行此操作。即使在这个阶段。 https://github.com/pnpm/pnpm/discussions/3995#discussioncomment-1893230

npm 仅对

.npmrc

 执行相同的操作

auto-install-peers = true

auto-install-peers=true 现在使 pnpm 的工作方式与 npm v7 相同。来自 pnpm v7.1.3 (

ref)

.npmrc

not automatic
是相关开发人员的选择。有些人支持,有些人不支持。 (
参考1参考2

.npmrc

为此,您必须创建一个

.npmrc

 文件并添加:

auto-install-peers = true
这是最好的方法。因为它为使用该项目和存储库的所有开发人员创建了一致性。相同的配置。

因此,简单来说,如果您有一些需要对等的软件包,只需添加配置即可。您有一个很好的警告,提醒您是否有带有

peer-dependencies

 的包裹。

https://github.com/pnpm/pnpm/discussions/3995#discussioncomment-2797582

auto-install-peers=true 现在使 pnpm 的工作方式与 npm v7 相同。从 pnpm v7.1.3 开始

--auto-install-peers
 arg 是否存在? (没有)

没有

--auto-install-peers

 arg。

可以在这里查看功能询问

https://github.com/pnpm/pnpm/issues/5284

拒绝。

原因是可以理解的。

.npmrc

 更能保证一致性。所以人们
pnpm install
并且它的工作原理总是一样的。没有忘记任何事情。

使用 install-peerdeps

我建议使用

.npmrc

。 -> 本机。直接前进。

注意:您可以考虑这个工具。如果您遇到一些 pnpm 错误(例如:

1)以及对等依赖关系处理的不一致。许多问题尚待解决。我会选择.pnpmrc first

。如果有任何问题。我会使用这个工具。

https://www.npmjs.com/package/install-peerdeps

install-peerdeps

支持pnpm。

例如,

eslint-config-airbnb

中提到了该工具。

示例:

npx install-peerdeps --pnpm <your-package> # or npx install-peerdeps -P <your-package> # as dev dep npx install-peerdeps -P -D <your-package> # Peers only npx install-peerdeps -P -D --only-peers <your-package> # or npx install-peerdeps -P -D -o <your-package>
该包将根据使用的标志自动将依赖项添加到 

package.json

dependencies
 中的 
devDependencies


10
投票
通过运行删除节点模块:

rm -rf node_modules
然后再次运行:

pnpm install
    

8
投票
我必须使用

.npmrc

 在项目根目录创建 
auto-install-peers=true
,然后删除 
pnpm-lock.yaml
 文件并运行 
pnpm i --shamefully-hoist

    


0
投票
在项目根目录修改或创建 .npmrc 文件并插入以下指令,该指令指示 pnpm 自动安装对等依赖项:

auto-install-peers=true
然后执行 pnpm install 或 pnpm install --force

© www.soinside.com 2019 - 2024. All rights reserved.