Node engine 8.x или 10.x в package.json

Я попытался указать движок узла в package.json, чтобы принять версию 8 и 10.

Я попытался набрать это:

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

Но текущая yarn приводит к:

"Узел" двигателя несовместим с этим модулем. Ожидаемая версия "8.x | 10.x"

Если я заменю на:

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

... он работает (т.е. нет ошибок).

Есть ли способ принять две версии движка узла в package.json?

Ответ 1

См. Документацию, включающую примеры.

Обеспечьте список разделенных пробелами двигателей с большим/меньшим, чем символы.

{ 
  "engines" : { 
    "node" : ">=8.0.0 <11.0.0" 
  }
}

Ответ 2

Вам просто нужна двойная труба || вместо одного.

"engines": {
  "node": "^8 || ^10"
}

Будет соответствовать v8.xx или v10.xx, но не v9.

Вы можете прочитать больше об этом здесь https://docs.npmjs.com/files/package.json#dependencies

Ответ 3

Это работает в моем случае.

"private": true,
  "engines": {
    "node": "8"
      }
}

Ответ 4

это работает для меня

  "engines": {
    "node": ">=0.10.22",
    "npm": ">=1.3.14"
  }

Ответ 5

Убедитесь, что вы находитесь в правильном каталоге. Его легко добавить в первый файл package.json, который вы видите (скорее всего, в корневой папке).

Error: There was an error reading functions/package.json:

Поле Engines является обязательным, но не найдено в functions/package.json

shot