【问题标题】:Node engine 8.x or 10.x in package.jsonpackage.json 中的节点引擎 8.x 或 10.x
【发布时间】:2019-01-06 19:57:36
【问题描述】:

我尝试在 package.json 中指定节点引擎以同时接受 810 版本。

我试着输入这个:

"engines": {
  "node": "8.x|10.x"
},

但运行 yarn 会导致:

引擎“节点”与此模块不兼容。预期版本“8.x|10.x”

如果我替换为:

"engines": {
  "node": "10.x"
},

...它可以工作(即没有错误)。

有没有办法在package.json 中接受两个版本的节点引擎?

【问题讨论】:

    标签: javascript node.js npm package.json yarnpkg


    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多