在表达Debian软件包的依赖关系时,可以使用exim | mail-transport-agent
之类的语法来表示您的软件包需要exim
或mail-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对象,该对象详细说明了注册表中可用的版本。