engine-preflight
v1.2.0
Published
Verify that your node app can run on the currently installed version of node running on your system.
Readme
engine-preflight
Simple tool to enforce local node version compatibility with your app.
Installation & Use
In your project directory
npm install engine-preflightThen 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-preflightmodule 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-enginecall in apreinstallscript, 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 installornpm cion a repo that already hasengine-preflightinstalled.
* Of course you could install engine-preflight globally to get around that problem.
