#nodejs_api
Использование свежих фич #nodejs или новых синтаксических конструкция языка приводит к тому, что ваше приложение не сможет работать под старой версий. Примеры:
➡️ crypto.randomUUID – свежая фича для нативной генерации UUID 4
➡️ Различное поведения Date в зависимости от версии V8. Пример
Поэтому стоит проверять версию и выкидывать не обработанное исключение, если код запущен под неверной версией. Делать это необходимо в entry-point файле, с которого идет запуск всего приложения.
Пример проверки только мажорной версии:
const nodeVersion = process.versions.node.split('.')[0];if (nodeVersion !== '14') throw new Error(`App requires node.js version 14`);Пример проверки всей версии:
const nodeVersion = process.versions.node;if (nodeVersion !== '14.17.0') throw new Error(`App requires node.js version 14.17.0`);Поле engines внутри package.json носит рекомендательный характер и не используется при запуске приложения ни через npm run scripts, ни напрямую. При желание его можно использовать на уровне кода после
require('./package.json'). В комментариях, есть пример от Александра.