Как игнорировать несовместимую ошибку "узла" двигателя при установке зависимостей npm с yarn?
при этом package.json:
{
  "name": "yarn-install-fail",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {},
  "author": "",
  "license": "ISC",
  "dependencies": {
    "aws-sdk": "2.x.x",
    "s3-streams": "^0.3.0"
  }
}
Я могу успешно установить зависимости через npm:
$ npm install
added 27 packages in 1.844s
но пряжа терпит неудачу:
$ yarn install
yarn install v0.24.5
info No lockfile found.
[1/4] Resolving packages...
[2/4] Fetching packages...
error s3-streams@0.3.0: The engine "node" is incompatible with this module. Expected version "^1.2.0".
error Found incompatible module
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
похоже, у пряжи возникли проблемы с установкой библиотеки s3-streams@0.3.0, но я предположил, что он будет резервным для установки всех зависимостей в любом случае, как npm будет.
2 ответов
вы действительно можете игнорировать такие ошибки через --ignore-двигатели:
$ yarn install --ignore-engines
yarn install v0.24.5
info No lockfile found.
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Saved lockfile.
Done in 1.41s.
это также задокументировано в справке команды:
$ yarn help | grep -- --ignore
    --ignore-scripts                  don't run lifecycle scripts
    --ignore-platform                 ignore platform checks
    --ignore-engines                  ignore engines check
    --ignore-optional                 ignore optional dependencies
просто убедитесь, что версии node и npm соответствуют версиям, указанным в вашем пакете.в JSON:
проверьте версию узла через IDE или запустите:
$ node -v
> 8.11.2
затем убедитесь, что это то же самое, что и в вашем пакете.в JSON:
{
  "name": "yarn-install-fail",
  ...
  "engines": {
    "node": "8.11.2"
  },
  "dependencies": {
    ...
  }
}
