engines-enforcer
v1.0.0
Published
Enforce node engines specified in package.json
Downloads
63
Readme
engines-enforcer
Enforce node engines specified in package.json
Because this:
Invalid node version. This package requires ">=7.0". You are using "v4.7.0"
Is 💯 times nicer than this:
const a = 1;
^^^^^
SyntaxError: Use of const in strict mode.
at Module._compile (module.js:439:25)
at Object.Module._extensions..js (module.js:474:10)
...more cryptic random internals of Node.js
Install
yarn add engines-enforcer
Usage
// if your current node version does not match "engines" in "package.json"
require('engines-enforcer')('./package.json');
//=> 'Invalid node version. This package requires ">=7.0". You are using "v4.7.0"'
// if your current node version matches, it continues silently
require('engines-enforcer')('./package.json');
// the rest of your code...
Why?
Nobody likes seeing errors like:
const a = 1;
^^^^^
SyntaxError: Use of const in strict mode.
at Module._compile (module.js:439:25)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:945:3
Especially when you're running a module for the first time. Use engines-enforcer
at the very top of your entry file in order to throw pleasant and informative errors instead!
Caution - This is intended to be used within cli's and not modules which will be composed as sub-dependencies. It would be redundant to enforce node versions in more than one place, so consider this a good practice for cli's only.
API
enginesEnforcer(packagePath)
Arguments
| Name | Description | Type | Default |
| ------- | ------------------------------- | -------- | ------- |
| packagePath | Path to package.json
| string
| None |
Returns
Type: Nothing on success, exits for you on failure (with status code 1
)
License
MIT © Dawson Botsford