package.json 中的节点引擎 8.x 或 10.x
Posted
技术标签:
【中文标题】package.json 中的节点引擎 8.x 或 10.x【英文标题】:Node engine 8.x or 10.x in package.json 【发布时间】:2019-01-06 19:57:36 【问题描述】:我尝试在 package.json 中指定节点引擎以同时接受 8
和 10
版本。
我试着输入这个:
"engines":
"node": "8.x|10.x"
,
但运行 yarn
会导致:
引擎“节点”与此模块不兼容。预期版本“8.x|10.x”
如果我替换为:
"engines":
"node": "10.x"
,
...它可以工作(即没有错误)。
有没有办法在package.json
中接受两个版本的节点引擎?
【问题讨论】:
【参考方案1】:请参阅the documentation,其中包含示例。
提供带有大于/小于符号的以空格分隔的引擎列表。
"engines" :
"node" : ">=8.0.0 <11.0.0"
【讨论】:
因为这包括了请求的节点版本,所以它是完全错误的,但它并不能解决实际问题,因为它还包括所有 9.x,这似乎是这里的实际问题?跨度> 如果您有两个像这里显示的约束...阅读“大于 8 且小于 11”,您可以使用空格。如果你想有多个变体,你必须使用||
【参考方案2】:
您只需要双管 ||
而不是单管。
"engines":
"node": "^8 || ^10"
将匹配 v8.x.x 或 v10.x.x 但不 v9。
您可以在此处阅读更多信息https://docs.npmjs.com/files/package.json#dependencies
【讨论】:
以上是关于package.json 中的节点引擎 8.x 或 10.x的主要内容,如果未能解决你的问题,请参考以下文章
我的节点 package.json 中的 cores 和 cors 有啥区别?
Docker 错误:没有这样的文件或目录,打开 '/package.json'
节点 package.json “bin” 值,命令不起作用
package.json中的“private”:true或“private”:false是啥意思[重复]