Used to ensure modern CLI scripts fail silently on old node.js versions
Add a top-level file to your project, eg. cli.js
, containing something like:
require('version-guard')('./path/to/file/to/run', 14, 18);
versionGuard(filePath, minMajor, [minMinor])
- filePath - a path to the modern file that should be run
- minMajor - the lowest major Node.js version that should be allowed to run the file
- [minMinor] - the lowest minor version of
minMajor
that should be allowed to run the file
On supported versions imports and runs filePath
using the dynamic import()
(supporting both ESM and CJS modules).
On non-supported versions, fails silently with an error message.
Apart from checking current node version this command also looks up the main project's package.json
and checks that the engines.node
in it mentions the same version number as is sent to this command. To ensure that maintainers doesn't forget to update one of the two and thus the two diverging.
This project itself is a CJS project as the entire point is to work on incredibly old node.js versions.