当表达 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 中没有功能来指定此类逻辑。但是,您可以在 scripts
中实现一个 postinstall
脚本,该脚本将在安装所有其他依赖项后执行,并且您可以在其中编写此类(或任何类型)行为的脚本。
例如(在package.json
中)
"scripts": {
"postinstall": "./bin/postinstall"
一个好的起点是运行 npm view {package}
来获取一个 JSON 对象,该对象详细说明了注册表中可用的版本。
关于node.js - 如何在 NPM 中表达替代依赖关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45865901/