问题标签 [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 投票
3 回答
5208 浏览

typescript - 使用 yarn link 消耗具有 peerDependencies 的本地 npm 包时出现问题

在尝试使用styled-components.

出于本示例的目的,假设我们有两个存储库,app并且将由.corecoreapp

目前,core使用 TypeScript 编写并使用tsc.

为了快速迭代,我尝试使用yarn linkto 链接coreapp.

这可以很好地进行app查找core...我面临的问题是,当编译的 TypeScript 代码core尝试需要一个包时,例如styled-components,它试图在node_modulesof core( not of app) 中找到这个包。由于我styled-components同时拥有 peerDependency 和 devDependency 它能够在core's中找到它node_modules,但这不是我想要发生的。我希望它使用styled-componentsof app

yarn link我尝试过的一种替代方法是添加coreto appvia的依赖项file:/path。这似乎按预期工作,但引入了新问题。我怎样才能让我的开发机器的路径存在于package.json本地开发中(而不是不断地来回切换)?此外,似乎任何更新都core需要从 中删除包app,并在重新添加之前清除 yarn 的缓存。

有没有更简单的方法可以使这种情况起作用?我刚刚开始将 Rollup 或 Webpack 视为一种解决方案,但不确定这是否是正确的方向。

0 投票
1 回答
1458 浏览

angular - 使用 peerDependencies 减小 Angular Element 输出的大小

我们正在尝试构建一个应该在 AngularJS 项目中使用的 Angular 元素(使用 Angular 7)。输出 .js 文件有 5 MB 大……太多了。

使用 webpack-bundle-analyzer 进行的分析表明,大部分空间都被 AngularJS 项目中也需要的依赖项所使用——在代码中不需要两次包含库。

所以我的想法是将这些依赖项声明为 package.json 中的 peerDependencies。我希望输出文件会变小。但不幸的是,peerDependencies 的构建结果在 size 上是相同的。我误解了 peerDependencies 的概念还是我需要一个特殊的构建参数?

例如,Devextreme 依赖项需要 1,88 MB 的磁盘空间,也作为对等依赖项。

0 投票
1 回答
568 浏览

javascript - 如何在打字稿中构建具有双向对等依赖关系的库?

我有两个库,一个发出请求,另一个进行日志记录。这两个库都需要来自客户端的配置,客户端将始终使用它们。

请求库始终调用日志库,并将其列为对等依赖项。

日志库有一个函数调用请求库中的方法来输出日志。该方法没有日志调用以避免无限循环。日志库也将请求库列为对等依赖项。

当我尝试tsc在请求库中运行时,它抱怨它无法自行导入。导入日志库时,日志库尝试导入请求库,但找不到。显然我不想发布请求库的每个版本,其中嵌套了之前的版本,所以安装旧版本是行不通的。

我尝试使用 typescript's 在日志库中动态加载请求库await import(),但显然仍试图打开导致错误的请求库。

实现这种双向库关系的最佳方法是什么?

0 投票
1 回答
2671 浏览

javascript - 为什么不能导入或需要 peerDependency,即使它存在于父模块中?

我正在尝试使用 npm peerDependencies,但似乎没有像宣传的那样工作。我错过了什么?

设置是,我有两个模块,mod并且plugin,这两个模块都依赖于 npm 的外部模块。mod声明对两者和外部模块的硬依赖plugin,并且插件声明对等依赖项,以便访问父模块正在使用的版本。

文件如下所示:

正如我从文档和示例中了解的那样,我认为这应该是使用对等依赖项的标准方式,并且npm install在任一目录中运行都不会给出任何错误或警告。

但是,当我在文件夹中运行 webpack 时mod,出现如下错误:

这里出了什么问题,webpack不应该plugin用父mod模块的对等依赖来解析内部的require语句吗?

0 投票
1 回答
747 浏览

reactjs - React 对等依赖和包的 React 版本限制

我的反应项目取决于“反应”:“^16.8.4”。

它还使用 react-circular-color@1.3.0

但是,在构建时,我收到了这个警告。

react-circular-color@1.3.0 需要一个 react@^0.14.0 || ^15.0.0 但没有安装。

这是否意味着,我的项目对 react 的主要依赖应该限制为 ^15.0.0?或者我如何满足不同包的对等依赖?

0 投票
2 回答
1769 浏览

npm - 如何列出所有必需的 npm peerDependencies

如何列出项目中所有当前需要的对等依赖项?

我试过搜索,但我只找到一堆自定义包来检查对等依赖项。我已经知道它们目前还可以,但我想要一份它们实际是什么包和版本的列表。

关于如何做到这一点的任何想法?

0 投票
0 回答
600 浏览

reactjs - 将 opencv4nodejs 导入 React App.js 会引发 TypeError

我正在尝试在我的 React 应用程序中使用 opencv4nodejs 模块。

具有 12 个 CPU 的 Ubuntu 18.04.3 LTS

当我安装在我的应用程序目录中时,我有一个看似成功的自动构建

npm install --save opencv4nodejs

opencv 模块确实已添加到我的 node_modules 文件夹中,并且“opencv4nodejs”已正确添加到我的 package.json 文件中,作为我的 React 应用程序中的依赖项(使用 create-react-app@3.0.1 创建)

但是,如果我尝试将模块导入我的 App.js 文件,则会引发 TypeError。

import cv from "opencv4nodejs";

整个错误输出附加TypeErrorOpenCV.txt

自动构建文件的完整终端输出为 opencvAutoBuildTerminalOutput.txt更多AutoBuildOpenCVtermoutput.txt

这是 Autobuild 完成期间结束的 WARN 行。

我尝试通过将这些添加到 package.json 中的依赖项来自己安装对等依赖项,但是这给 eslint 带来了问题,因为实际上安装了一个 eslint,但不知何故未被识别。缺少对等依赖项是否会导致我的错误?

以下是 AutoBuild 输出中包含字符串“Fail”的行。

这是包含“未找到”的 Autobuild 行

这是来自 AutoBuild 的一般信息

0 投票
3 回答
2310 浏览

node.js - 如何识别哪些 npm 包只是对等依赖项?

我正在尝试从几个项目的 package.json 文件中删除未使用的包,但我遇到了对等依赖项的问题。有一些工具,例如depcheck,会尝试列出所有“未使用”的包,但它不会区分实际未使用的包和未使用的包,因为它们是对等依赖项。

是否有一个包,或者一些npm我不熟悉的命令,这将允许我列出我的项目中的所有对等依赖项,或者至少允许我输入一个包名并查看该包是否安装是因为它是另一个包的对等依赖项?

对于后代,这是我的一个项目的依赖项的示例。例如,在这个项目中,我知道这reflect-metadata是一个对等依赖项@nestjs/common,但我只是在卸载它之后才发现。

0 投票
0 回答
68 浏览

npm - devDependencies 和 peerDependencies 是一样的吗?

请原谅我的无知,如果我正在开发一个图书馆,我的(部分)是否应该peerDependencies被复制到我的devDependencies? 我想是的,对吧?

例子:

因为这是一个库,如果我将它们作为依赖项,那么在使用它们的项目中,当项目可能已经包含这些依赖项时,它们将安装自己的 node_modules,从而导致重复代码 - 所以我将它们放入peerDependencies以避免这种情况。但是现在我无法开发(例如编写测试),所以我必须将它们放入devDependencies.

这个对吗?我是不是误会了什么?

0 投票
1 回答
222 浏览

typescript - 在 VSCode 中构建 TS 插件时如何修复 peerDependency

我目前正在使用具有一些对等依赖项的 TS 构建插件。我必须添加install-peers-cli以确保它在不更改package.json的情况下安装对等点,并且构建工作正常且没有问题。

现在的问题是,在 VSCode 内部,对于所有对等依赖项,我仍然得到以下信息。

只是想知道是否有办法解决这个问题。