engine-preflight v1.2.0
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:
> CoolApp@2.10.3 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! CoolApp@2.10.3 postinstall: `check-engine`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the CoolApp@2.10.3 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.