问题标签 [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.
npm - 将 PrimeNG 安装到 Angular 应用程序中的 npm 冲突对等依赖要求
我安装primeng并收到对等依赖警告:
所以我尽职尽责地安装 zone.js@^0.10.2 ...
...现在它抱怨我需要安装 zone.js@~0.9.1。如果我安装它会抱怨 zone.js@^0.10.2 需要安装,依此类推......
该怎么办?谢谢
webpack - 如何输出具有允许选择性导入的对等依赖项的 NPM 包?
我正在发布一个使用一些对等依赖项的模块:
在我的 package.json 文件中,我声明了 peerDependencies:
在我的 webpack 配置中,我声明了 externals 以及输出格式commonjs2
(我完全不确定为什么要使用commonjs2
而不是commonjs
):
这似乎有效,因为我可以看到输出文件中不包含外部。但是,在我的项目中包含这个包的输出会导致包的大小要大得多。
我认为这是因为捆绑包的输出将我的import
语句转换为require
语句,因此在我使用此包的项目中,require
无法优化定义为语句的对等依赖项。
换句话说,包的输出,而不是将@material-ui/core
库作为构建的一部分包含在内,而是将其引用为require('@material-ui/core')
那是对的吗?
打包对等依赖项的正确方法是什么,以便:
- 他们遵守 commonjs 模块格式(这是必要的)吗?
- 对等依赖项的间接导入仍然可以选择性吗?
我认为(但可能是错误的)目前正在发生的事情是:
我也试过用babel-plugin-transform-imports
. 但我发现我必须为每个导入配置对等依赖项/外部项(@material-ui/core/Card
,@material-ui/core/List
等)
reactjs - 有没有办法告诉 lerna/npm '真正在我自己的 node_modules 中查找那些对等依赖项'?
我有一个相当标准的 lerna monorepo,它看起来像这样:
因此,一个真正常见的问题是,一旦您开始在依赖库中使用钩子,您就会收到以下消息:
这是因为您的应用程序中有两个版本的 React,一个来自主应用程序,一个来自依赖项。
现在 - 我已经使用和工作的一个常见解决方案是在你的 webpack 配置中声明react
和任何其他共享/对等依赖项。例如,正如这里所建议的那样。或查看来自 react 的这个 Github 问题线程。externals
但是,我不喜欢这个解决方案,首先,如果我不使用 webpack 怎么办,其次我不应该手动跟踪我需要标记为外部的依赖项。
我认为应该起作用的是:
在react-dep
我声明react
两者devDependencies
和peerDependencies
。我把它放进去的原因devDependencies
是因为我的依赖库可能使用故事书或类似的东西来开发组件,所以我确实需要在开发中做出反应。
我认为如果我要发布react-dep
到 npm 并使用 npm in 中的编译代码,这应该可以工作main
,因为只会dependencies
获取。
但是,我认为由于 lerna 符号链接,在这种情况下发生的情况是 dev 依赖仍然存在,我们得到了这个错误。
有没有办法为 lerna monorepo 解决这个问题?
这是演示此问题的 github 存储库:https ://github.com/dwjohnston/lerna-react-monorepo
node.js - 在不匹配的 peerDependencies 上强制 npm 安装失败
当存在 peerDependency 版本不匹配时,是否有人拥有npm install
完全失败的技术?我们经常遇到开发人员忽视 peerDependency警告的问题,并且当测试不足时,semver 不匹配会导致损坏。如果我们的 CICD 进程在尝试安装未解决的版本冲突时由于错误退出代码而崩溃,那就太好了。
npm - 相互依赖的 NPM 包:peerDependency 不针对“主机”包解析
我今天发现了需要将一个库分成两个包的困难方法;让我们打电话给他们CoreLib
和TestCoreLib
。该CoreLib
包是一个库,该TestCoreLib
库是实用程序的捆绑包,参与者需要设置测试CoreLib
库所需的测试环境。将它分成两个包的额外好处是,使用它构建的应用程序CoreLib
也可以从使用中受益,TestCoreLib
因为它也足以作为一个模拟库。
由于TestCoreLib
使用了来自 的一些演员CoreLib
,我将其定义CoreLib
为的peerDependency。TestCoreLib
相反,我将devDependency定义TestCoreLib
为as当然需要在发布之前通过其测试。CoreLib
CoreLib
两个候选发布包都已成功发布到 NPM,我已经设置了第三个项目,它成功地DemoApp
使用了这两个包。CoreLib
TestCoreLib
现在问题出在CoreLib
项目的开发分支上。由于引发以下错误,测试未完成:
未捕获的错误 [ERR_MODULE_NOT_FOUND]:找不到从 /path/to/CoreLib/node_modules/CoreTestLib/lib/index.js 导入的包“CoreLib”
这告诉我,即使在项目目录中,它CoreLib
也没有被 拾取。中的第一条语句是 import from ,所以我假设错误被抛出,因为即使它应该......也没有解决导入问题。对吗?TestCoreLib
TestCoreLib
node_modules
CoreLib
TestCoreLib
CoreLib
我一直希望 的开发版本CoreLib
被 使用TestCoreLib
,所以我担心添加CoreLib
为devDependency
(而不是peerDependency
) ,TestCoreLib
因为我担心这样做会锁定CoreLib
与它自己的先前版本的版本冲突,但老实说,我对什么感到困惑在这种情况下会发生。
TestCoreLib
链接到的懒惰男孩月球拍摄CoreLib
也不能解决问题,所以我显然错过了一些基本的东西,我非常感谢你的帮助。
你知道有哪些项目成功地将它们的包拆分为 peerDependencies 以供你参考吗?
房间里有没有一只大象坐在我的头上,如果有,你能告诉它下车,这样我就可以解决这个令人抓狂的问题并继续前进吗?LMAO
安全、好、冷静、清晰、快乐的人类同胞。感谢您的考虑。
node.js - npm:引用一个对等依赖;如何从对等依赖项中对齐版本
抽象地说,我对提供的版本没问题dependency-B
,由于dependency-A
.
所以当我 时require('dependency-B')
,我会期待A 的依赖。
我正在使用该库中的 root 函数,事实上,如果dependency-A
版本有问题,我想与它保持一致并使用它使用的相同版本。
如果dependency-B
在依赖项中列出,将安装一个全新的包。
我很想不列出dependency-B
我的依赖项。我应该避免这种做法吗?依赖我的主要依赖安装的对等版本不行吗?
如果这是一个布拉德的做法,我怎么能告诉 npm 给我它由另一个包安装的完全相同的版本?
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 文件
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-editor的package.json:
我在这里提出了这个问题,但从未收到回复。
所以我想知道这里是否有人对 React 16 到 17 的增强有更深入的了解可以回答 react-simple-code-editor 中的 react/react-dom 是否可以放宽以使用 16+?如果是这样,语法是什么?
更多关于 Peer Dependencies的信息在这里。
redux - 关于 react-redux npm 包 'peerDependencies' 的问题
一般来说,如果包(通常是 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 的代码是安全的?
谢谢。