如何将npm依赖添加为peer依赖

hkmswyz6  于 11个月前  发布在  其他
关注(0)|答案(4)|浏览(128)

npm是否可以像yarn选项--yarn那样将依赖项安装为对等依赖项,而不是手动添加,例如:

"peerDependencies": {
  "@angular/core": "^7.0.0"
}

字符串

更新,对问题进行更多澄清,感谢@Broncha

问题是如何在项目中添加对等依赖。

  • npm i dep将依赖项添加到package.json中的“dependencies”,
  • npm i -D dep将依赖项添加到package.json中的“devendencies”。

如何安装一个依赖项,将其添加到package.json中的“对等关系”中?

8hhllhi2

8hhllhi21#

目前没有办法,可以把依赖安装为peer依赖,安装后手动移动到package.json中的peerDependencies对象

旧答案

  • 自动安装peer依赖关系已在npm v3中删除,此功能已在npm v7中添加。
    **因此,将您的npm更新到版本7或更高版本将解决大多数问题。

如果需要将依赖安装为对等依赖。

要安装对等依赖,实际上需要手动修改package.json文件。
例如,如果你想安装angular的核心组件库作为对等依赖,

  1. npm i @angular/core
  • 这将在dependencies对象中添加属性。*
"dependencies": {
    "@angular/core": "^7.0.0"
}

字符串
1.将安装的软件包名称移动到peerDependencies键。

"peerDependencies": {
    "@angular/core": "^7.0.0"
}

**额外:**如果你需要同一个包的两个版本,那么你可以这样修改packge.json文件,

"peerDependencies": {
   "@angular/core": "^6.0.0"
   "@angular/core": "^7.0.0"
 }

r8xiu3jd

r8xiu3jd2#

所有其他的答案都在谈论NPM命令如何处理在当前项目的package.json中安装当前'deps'和'devDeps'的'peerDeps',自动安装它们。
但问题是如何使用带有特定标志的NPM命令将deps安装为'peerDeps'并写入当前项目的package.json。

    • 答案**是,不幸的是,即使到NPM@7也没有这样的标志

我猜NPM不会把这个命令当作安装deps的命令,因为在package.json中添加一个“peerDeps”并不需要NPM来安装一个包到/node_modules/中。这只是对package.json的一个文件配置更改。但我理解人们不想在package.json文件中手动添加/删除“deps”,而希望NPM这样做,这可能是因为NPM会处理“deps”的顺序。另一个原因是,“peerDeps”总是使用一个范围的semver,并且必须手动编辑而不是通过npm install命令。比如react-redux:

"peerDependencies": {
  "react": "^16.8.3 || ^17"
},

字符串
我认为NPM@7应该提供一种方法来支持这一点,因为现在它正式能够处理“peerDeps”,这个功能是它的一部分。

bweufnob

bweufnob3#

install命令的--save-peer选项就是您要查找的:

npm install --save-peer <dep>

字符串
如果<dep>已经安装在dependencies下,则此命令将自动将其移动到peerDependencies下。
这比手动编辑package.json要好,因为它也会负责更新锁文件。

tpgth1q7

tpgth1q74#

可以使用pkg命令:

npm pkg set peerDependencies.@angular/core="^7.0.0"

字符串

相关问题