问题标签 [peer-dependencies]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
869 浏览

npm - 将 PrimeNG 安装到 Angular 应用程序中的 npm 冲突对等依赖要求

我安装primeng并收到对等依赖警告:

所以我尽职尽责地安装 zone.js@^0.10.2 ...

...现在它抱怨我需要安装 zone.js@~0.9.1。如果我安装它会抱怨 zone.js@^0.10.2 需要安装,依此类推......

该怎么办?谢谢

0 投票
1 回答
385 浏览

webpack - 如何输出具有允许选择性导入的对等依赖项的 NPM 包?

我正在发布一个使用一些对等依赖项的模块:

在我的 package.json 文件中,我声明了 peerDependencies:

在我的 webpack 配置中,我声明了 externals 以及输出格式commonjs2(我完全不确定为什么要使用commonjs2而不是commonjs):

这似乎有效,因为我可以看到输出文件中不包含外部。但是,在我的项目中包含这个包的输出会导致包的大小要大得多。

我认为这是因为捆绑包的输出将我的import语句转换为require语句,因此在我使用此包的项目中,require无法优化定义为语句的对等依赖项。

换句话说,包的输出,而不是将@material-ui/core库作为构建的一部分包含在内,而是将其引用为require('@material-ui/core')

那是对的吗?

打包对等依赖项的正确方法是什么,以便:

  1. 他们遵守 commonjs 模块格式(这是必要的)吗?
  2. 对等依赖项的间接导入仍然可以选择性吗?

我认为(但可能是错误的)目前正在发生的事情是:

我也试过用babel-plugin-transform-imports. 但我发现我必须为每个导入配置对等依赖项/外部项(@material-ui/core/Card,@material-ui/core/List等)

0 投票
1 回答
1318 浏览

reactjs - 有没有办法告诉 lerna/npm '真正在我自己的 node_modules 中查找那些对等依赖项'?

我有一个相当标准的 lerna monorepo,它看起来像这样:

因此,一个真正常见的问题是,一旦您开始在依赖库中使用钩子,您就会收到以下消息:

这是因为您的应用程序中有两个版本的 React,一个来自主应用程序,一个来自依赖项。

现在 - 我已经使用和工作的一个常见解决方案是在你的 webpack 配置中声明react和任何其他共享/对等依赖项。例如,正如这里所建议的那样。或查看来自 react 的这个 Github 问题线程externals

但是,我不喜欢这个解决方案,首先,如果我不使用 webpack 怎么办,其次我不应该手动跟踪我需要标记为外部的依赖项。

我认为应该起作用的是:

react-dep我声明react两者devDependenciespeerDependencies。我把它放进去的原因devDependencies是因为我的依赖库可能使用故事书或类似的东西来开发组件,所以我确实需要在开发中做出反应。

我认为如果我要发布react-dep到 npm 并使用 npm in 中的编译代码,这应该可以工作main,因为只会dependencies获取。

但是,我认为由于 lerna 符号链接,在这种情况下发生的情况是 dev 依赖仍然存在,我们得到了这个错误。

有没有办法为 lerna monorepo 解决这个问题?

这是演示此问题的 github 存储库:https ://github.com/dwjohnston/lerna-react-monorepo

0 投票
1 回答
63 浏览

node.js - 在不匹配的 peerDependencies 上强制 npm 安装失败

当存在 peerDependency 版本不匹配时,是否有人拥有npm install完全失败的技术?我们经常遇到开发人员忽视 peerDependency警告的问题,并且当测试不足时,semver 不匹配会导致损坏。如果我们的 CICD 进程在尝试安装未解决的版本冲突时由于错误退出代码而崩溃,那就太好了。

0 投票
1 回答
194 浏览

reactjs - 将反应添加为对等依赖项时如何运行反应项目

我正在尝试在本地从 Github 运行一个 repo。react 的文件夹结构与我通常在 react 项目中看到的有所不同(我是 react 新手)。文件夹结构就像

-index.js
-css 文件夹
-jsx 文件夹 - 组件
-jsx 文件夹 - index.html
-jsx 文件夹 - index.js

react 也被添加为对等依赖项。我不确定如何运行这个存储库。任何帮助深表感谢

在 package.json 中反应

在此处输入图像描述

0 投票
1 回答
79 浏览

npm - 相互依赖的 NPM 包:peerDependency 不针对“主机”包解析

我今天发现了需要将一个库分成两个包的困难方法;让我们打电话给他们CoreLibTestCoreLib。该CoreLib包是一个库,该TestCoreLib库是实用程序的捆绑包,参与者需要设置测试CoreLib库所需的测试环境。将它分成两个包的额外好处是,使用它构建的应用程序CoreLib也可以从使用中受益,TestCoreLib因为它也足以作为一个模拟库。

由于TestCoreLib使用了来自 的一些演员CoreLib,我将其定义CoreLib为的peerDependencyTestCoreLib

相反,我将devDependency定义TestCoreLib为as当然需要在发布之前通过其测试。CoreLibCoreLib

两个候选发布包都已成功发布到 NPM,我已经设置了第三个项目,它成功地DemoApp使用了这两个包。CoreLibTestCoreLib

现在问题出在CoreLib项目的开发分支上。由于引发以下错误,测试未完成:

未捕获的错误 [ERR_MODULE_NOT_FOUND]:找不到从 /path/to/CoreLib/node_modules/CoreTestLib/lib/index.js 导入的包“CoreLib”

这告诉我,即使在项目目录中,它CoreLib也没有被 拾取。中的第一条语句是 import from ,所以我假设错误被抛出,因为即使它应该......也没有解决导入问题。对吗?TestCoreLibTestCoreLibnode_modulesCoreLibTestCoreLibCoreLib

我一直希望 的开发版本CoreLib被 使用TestCoreLib,所以我担心添加CoreLibdevDependency(而不是peerDependency) ,TestCoreLib因为我担心这样做会锁定CoreLib与它自己的先前版本的版本冲突,但老实说,我对什么感到困惑在这种情况下会发生。

TestCoreLib链接到的懒惰男孩月球拍摄CoreLib也不能解决问题,所以我显然错过了一些基本的东西,我非常感谢你的帮助。

你知道有哪些项目成功地将它们的包拆分为 peerDependencies 以供你参考吗?

房间里有没有一只大象坐在我的头上,如果有,你能告诉它下车,这样我就可以解决这个令人抓狂的问题并继续前进吗?LMAO

安全、好、冷静、清晰、快乐的人类同胞。感谢您的考虑。

0 投票
1 回答
211 浏览

node.js - npm:引用一个对等依赖;如何从对等依赖项中对齐版本

抽象地说,我对提供的版本没问题dependency-B,由于dependency-A.

所以当我 时require('dependency-B'),我会期待A 的依赖。
我正在使用该库中的 root 函数,事实上,如果dependency-A版本有问题,我想与它保持一致并使用它使用的相同版本。

如果dependency-B在依赖项中列出,将安装一个全新的包。

我很想不列出dependency-B我的依赖项。我应该避免这种做法吗?依赖我的主要依赖安装的对等版本不行吗?


如果这是一个布拉德的做法,我怎么能告诉 npm 给我它由另一个包安装的完全相同的版本?

0 投票
4 回答
6541 浏览

vue.js - NPM:npm 对等依赖冲突

我下载了一个项目,它没有文件。package-lock.json当我运行npm install时,有冲突。错误信息:

我阅读了很多文档并发现@vue/cli-plugin-babel@4.4.4将安装 lastest @vue/cli-service@4.5.10。我怎样才能安装它兼容vue@2.6.10


包.json 文件

0 投票
2 回答
340 浏览

reactjs - 如何让 React styleguidist 正确安装并通过 react-simple-code-editor: React 16 & 17 解决对等依赖问题?

我正在通过阅读Fullstack React 书来学习 React 。


我的设置:


按照我运行的styleguidist 安装指南:

这个安装:

  • webpack v5.11.0
  • react-styleguidist 11.1.5

之间似乎存在某种冲突:

这似乎归结为 React 16 基线上的 react-simple-code-editor 中的对等依赖性,而 react-styleguidist 使用 React 17。

react-simple-code-editorpackage.json

我在这里提出了这个问题,但从未收到回复。

所以我想知道这里是否有人对 React 16 到 17 的增强有更深入的了解可以回答 react-simple-code-editor 中的 react/react-dom 是否可以放宽以使用 16+?如果是这样,语法是什么?

更多关于 Peer Dependencies的信息在这里

0 投票
0 回答
131 浏览

redux - 关于 react-redux npm 包 'peerDependencies' 的问题

这是package.json

一般来说,如果包(通常是 src 目录)依赖于 'react',就像 react-redux 所做的那样,我们应该将依赖项放到 'dependencies' 中。我的理解 react-redux 不这样做是因为他们不想让 npm install 来安装它,相反,他们只想让 npm 基于 'peerDependencies 发出警告(npm v7 将再次安装它) ' 标签。使用“devDependencies”标签中的“react”,编译仍然可以工作。

首先我希望有人能证实我的理解,或者让我知道它应该是什么。

我的问题是,既然 'react-redux' 可以与 redux@2 一起使用,为什么在 'devDependencies' 中它不使用 redux@2?风险在于,当我们使用 redux@4 工作和测试时,如何确保使用 redux@2 的代码是安全的?

谢谢。