在表达Debian软件包的依赖关系时,可以使用exim | mail-transport-agent之类的语法来表示您的软件包需要eximmail-transport-agent,但并不关心哪个。

我想在NPM中表达类似的内容。有办法吗?具体来说,假设我希望我的应用程序表示对mikesthing-impl1 v1.7更好或mikesthing-impl2 v2.1或更好的依赖。我想说些类似的话:

dependencies: { "mikesthing": { "mikesthing-impl1": "^1.7", "mikesthing-impl2": "^2.1" }}

有办法吗?

最佳答案

不,package.json中没有指定这种逻辑的功能。但是,您可以在postinstall中实现一个scripts脚本,该脚本将在安装了所有其他依赖项之后执行,并且可以在其中编写这种(或任何一种)行为的脚本。

例如(在package.json中)

"scripts": {
  "postinstall": "./bin/postinstall"


一个不错的起点是运行npm view {package}取回一个JSON对象,该对象详细说明了注册表中可用的版本。

10-08 03:38