engine-preflight
v1.2.0
Published
Verify that your node app can run on the currently installed version of node running on your system.
Downloads
1,354
Readme
engine-preflight
Simple tool to enforce local node version compatibility with your app.
Installation & Use
In your project directory
npm install engine-preflight
Then add this script to your package.json
:
"postinstall": "check-engine"
And if you haven't already, define your node version requirements, like so:
"engines": {
"node": ">=12.13.0 <13"
}
Using the engine settings and the postinstall script above, running npm install
or npm ci
to install modules will throw an error (after installation).
For example
Say you have node 10.16.3 installed and tried to run npm install
for the project running "postinstall": "check-engine"
, here's the error output you'd receive:
> [email protected] postinstall /ProjectDir/coolApp
> check-engine
> Node version requirements ">=12.13.0 <13" are NOT satisfied with the current version of node: "v10.16.3"
Please update your node version and try again.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] postinstall: `check-engine`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] postinstall script.
Cautionary notes
Placing the
engine-preflight
module in devDependencies may sound like a good idea, however, if you project is ever install as a module or via methods likenpm install git+ssh://...
, the installation will fail on postinstall because devDependencies are not installed when installing as a module.It may seem like a good idea to place the
check-engine
call in apreinstall
script, it is not*. The command relies on the engine-preflight module being installed, which means the check-engine preflight script would only pass if runningnpm install
ornpm ci
on a repo that already hasengine-preflight
installed.
* Of course you could install engine-preflight globally to get around that problem.